Mon NavMesh spawn en perdant sa cible
Mon NavMesh spawn en perdant sa cible
Bonjour, je rencontre un problème incompréhensible, j'en implore a vos conseils^^ J'ai donc un IA avec en cible (du scriptIA Et du smooth look at via playmaker) mon player. Tout va bien, mais si je fait apparaître l'ennemi depuis un point de spawn par un trigger event par exemple, il arrive sans cible, ni dans ses parametres nav mesh, ni dans son smooth loot at. En revanche si un ennemi fait spawn ce meme prefab d'ennemi en mourrant, la aucun soucis, mais c'est pas ce que je veut.
Tout ca c'est si je met comme cible mon player depuis la hierarchie. Si je met comme cible mon player depuis le prefab et que je fait apparaître ce prefab player au début de jeu, l'ennemi qui spawn par le trigger event aura bien le player comme cible, mais seulement sa zone d'apparation, il va donc courir vers le point de spawn du player et s'arrete betement devant. Mon hypothèse est a cause du fait que le player arrive en etant renomé "player(clone)", ce qui m'enerve car il n'y a aucun player dans la scene a ce moment la..
bref ca vient ni des prefabs, ni du point de spawn, je seche et je desespere.. sans rire vous faites comment vous?
Merci de votre aide
Tout ca c'est si je met comme cible mon player depuis la hierarchie. Si je met comme cible mon player depuis le prefab et que je fait apparaître ce prefab player au début de jeu, l'ennemi qui spawn par le trigger event aura bien le player comme cible, mais seulement sa zone d'apparation, il va donc courir vers le point de spawn du player et s'arrete betement devant. Mon hypothèse est a cause du fait que le player arrive en etant renomé "player(clone)", ce qui m'enerve car il n'y a aucun player dans la scene a ce moment la..
bref ca vient ni des prefabs, ni du point de spawn, je seche et je desespere.. sans rire vous faites comment vous?
Merci de votre aide
- boubouk50
- ModoGenereux
- Messages : 6215
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Mon NavMesh spawn en perdant sa cible
J'ai pas vraiment compris. C'est peu embrouillé comme explication.
Ne serait-ce pas tout bêtement que les variables publiques des préfabs ne peuvent pas être affectées en dehors de la scène?
Je veux dire par là, que les préfabs existent en dehors des scènes et il peuvent être utilisés n'importe où, n'importe quand. De ce fait, leurs variables publiques ne peuvent pas être renseignées car l'objet qui devrait y être affecté n'existe que dans la scène (donc pas en dehors).
L'affectation ne peut donc que se faire dans la scène au moment de l'instanciation du préfab.
Ne serait-ce pas tout bêtement que les variables publiques des préfabs ne peuvent pas être affectées en dehors de la scène?
Je veux dire par là, que les préfabs existent en dehors des scènes et il peuvent être utilisés n'importe où, n'importe quand. De ce fait, leurs variables publiques ne peuvent pas être renseignées car l'objet qui devrait y être affecté n'existe que dans la scène (donc pas en dehors).
L'affectation ne peut donc que se faire dans la scène au moment de l'instanciation du préfab.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Mon NavMesh spawn en perdant sa cible
Justement, j'ai essayé de mettre le prefab du player comme cible du prefab nav mesh, mais dans ce cas les nav mesh ne considerent comme cible que le point d'apparation du prefab player, ils ne suivent pas le player.
Et de plus si, le prefab peut memoriser une cible qui n'est pas un prefab, la preuve est que ca fonctionne dans certains cas (si le script de l'ennemi commande l'apparation d'autre ennemis depuis le prefab ennemi, la tout va bien)
Et de plus si, le prefab peut memoriser une cible qui n'est pas un prefab, la preuve est que ca fonctionne dans certains cas (si le script de l'ennemi commande l'apparation d'autre ennemis depuis le prefab ennemi, la tout va bien)
- boubouk50
- ModoGenereux
- Messages : 6215
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Mon NavMesh spawn en perdant sa cible
Ok.
Ça pourrait être dû au fait que le chemin n'est pas recalculé. Le chemin du NavMeshAgent a été calculé sur la position de départ, normal, puis reste sur ce chemin jusqu'au bout.
Il faut mettre à jour la destination du NavMeshAgent régulièrement. Attention, le recalcul peut être coûteux, il n'est pas forcément nécessaire de le faire à chaque frame/update.
Une piste: https://answers.unity.com/questions/628 ... layer.html
Ça pourrait être dû au fait que le chemin n'est pas recalculé. Le chemin du NavMeshAgent a été calculé sur la position de départ, normal, puis reste sur ce chemin jusqu'au bout.
Il faut mettre à jour la destination du NavMeshAgent régulièrement. Attention, le recalcul peut être coûteux, il n'est pas forcément nécessaire de le faire à chaque frame/update.
Une piste: https://answers.unity.com/questions/628 ... layer.html
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Mon NavMesh spawn en perdant sa cible
C'est ce que je me suis dit au debut, j'ai donc essayé de loopé l'état de smooth look at avec fms, sans succés, en revanche j'ai pas essayé de rafraichir le nav mesh, parce que j'ignorais qu'on pouvait depuis le script XD par contre je n'y connais rien au script, ca m'étonne meme qu'on ne puis pas rafraichir depuis playmaker. Mais je vais voir si je peut essayer de dechiffrer tout ca, merci de la piste
Re: Mon NavMesh spawn en perdant sa cible
Bonjour,
Pourquoi ne renommes-tu pas ton player au moment de sa création ?Garfrenix a écrit :Mon hypothèse est a cause du fait que le player arrive en etant renomé "player(clone)", ce qui m'enerve car il n'y a aucun player dans la scene a ce moment la..
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.
Re: Mon NavMesh spawn en perdant sa cible
car il se renomme en arrivant dans la scéne, un objet le fait spawner au debut du jeu, et meme si le prefab s'apelle "player", il s'apellera "player clone"
A moins qu'on puisse renommer un objet dans le jeu ?!
A moins qu'on puisse renommer un objet dans le jeu ?!
- boubouk50
- ModoGenereux
- Messages : 6215
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Mon NavMesh spawn en perdant sa cible
Oui, c'est la propriété name du gameObject.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Mon NavMesh spawn en perdant sa cible
En effet, c'etait un test interessant a faire, mais qui n'a rien changé,meme en renommant mon player comme il est écrit dans la cible du nav mesh, ca ne marche pas mieux. En revanche, alors que je n'ai pas fait grand chose de plus, le smooth look at fonctionne, En revanche si je fait apparaitre le player en debut de jeu, j'ai une erreur qui me dit " Object reference not set to an instance of an object", ce que je n’avais pas la derniere fois, je ne comprend pas bien en quoi mon player n'est pas un gameobject, mais bon,je peut ignorer cette erreur et lancer le jeu quand meme en appuyant sur pause
- boubouk50
- ModoGenereux
- Messages : 6215
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Mon NavMesh spawn en perdant sa cible
Object reference not set to an instance of an object
Signifie qu'une variable n'est pas référencée. Tu dois avoir la ligne de code qui va avec et le nom de la variable incriminée. C'est ici que ce situe ton problème, je pense. Une mauvaise initialisation.
Signifie qu'une variable n'est pas référencée. Tu dois avoir la ligne de code qui va avec et le nom de la variable incriminée. C'est ici que ce situe ton problème, je pense. Une mauvaise initialisation.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation