Mon NavMesh spawn en perdant sa cible

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Mon NavMesh spawn en perdant sa cible

Message par Garfrenix » 06 Juin 2019 16:35

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 :)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6215
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Mon NavMesh spawn en perdant sa cible

Message par boubouk50 » 06 Juin 2019 18:02

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.
"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

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Mon NavMesh spawn en perdant sa cible

Message par Garfrenix » 06 Juin 2019 18:28

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)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6215
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Mon NavMesh spawn en perdant sa cible

Message par boubouk50 » 06 Juin 2019 20:37

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
"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

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Mon NavMesh spawn en perdant sa cible

Message par Garfrenix » 06 Juin 2019 21:41

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

EmileF
Messages : 674
Inscription : 18 Mars 2017 19:39

Re: Mon NavMesh spawn en perdant sa cible

Message par EmileF » 07 Juin 2019 09:22

Bonjour,
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..
Pourquoi ne renommes-tu pas ton player au moment de sa création ?
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Mon NavMesh spawn en perdant sa cible

Message par Garfrenix » 07 Juin 2019 13:30

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 ?!

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6215
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Mon NavMesh spawn en perdant sa cible

Message par boubouk50 » 07 Juin 2019 14:22

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

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Mon NavMesh spawn en perdant sa cible

Message par Garfrenix » 11 Juin 2019 14:31

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

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6215
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Mon NavMesh spawn en perdant sa cible

Message par boubouk50 » 11 Juin 2019 19:59

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.
"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

Répondre

Revenir vers « Unity le logiciel »