Rajouter une animation après une apparition

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Jyslack
Messages : 12
Inscription : 08 Juil 2020 05:23

Rajouter une animation après une apparition

Message par Jyslack » 08 Juil 2020 17:50

Bonjour! Sur un projet je tente de faire apparaître un objet ! Pas de problème à ce niveau! Je crée un instantiate! Et quand mon perso touche l'endroit désiré, l'objet apparaît où je le désire!

Cependant j'aimerais que mon objet fasse une animation ..un mouvement en forme de L ou de U ...comme de plus simple tel un simple mouvement de gauche à droite!

Ma question ... Est-ce mieux de faire un script au lieu de rajouter un animation sur mon objet? Car mon animation fait complètement bugger mon objet une fois que je linstantiate! Sinon si je fais un script..je ne sais pas trop comment faire des mouvement...en forme de U! Un ligne droite peut être mais comment travailler un mouvement plus courbé?

J'espère avoir été assez clair! Merci de vos futures réponses.

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Rajouter une animation après une apparition

Message par DevAmat » 08 Juil 2020 23:43

Salut,

Je te conseille de passer par une animation, et ce n'est normalement pas difficile à faire.

Jyslack
Messages : 12
Inscription : 08 Juil 2020 05:23

Re: Rajouter une animation après une apparition

Message par Jyslack » 09 Juil 2020 06:37

Oh et bien l'animation fait deja bouger mon objet dans l'endroit où il doit apparaître! Et multiplie les.clones! Mon script possède peut etre une erreur mais pourtant rien n'indique cela! Donc je devrais modifier mon script pour que lobjet n'existe pas tant quil n'est pas instantiate...quel genre de script permet cela?

Avatar de l’utilisateur
Max
Messages : 8763
Inscription : 30 Juil 2011 13:57
Contact :

Re: Rajouter une animation après une apparition

Message par Max » 09 Juil 2020 09:53

Bonjour,

dans un premier temps poste ton script pour voir ce qu'il en est (encadré par les balises code).
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Rajouter une animation après une apparition

Message par DevAmat » 09 Juil 2020 19:58

Jyslack a écrit :
09 Juil 2020 06:37
Oh et bien l'animation fait deja bouger mon objet dans l'endroit où il doit apparaître! Et multiplie les.clones! Mon script possède peut etre une erreur mais pourtant rien n'indique cela! Donc je devrais modifier mon script pour que lobjet n'existe pas tant quil n'est pas instantiate...quel genre de script permet cela?
Tu n'es pas très clair. Et lorsque tu parles de "bug" à cause de l'animation que veux tu dire?
Lorsque tu instancies le "GameObject", le plus simple c'est de lui faire jouer une animation. Tu peux le faire en script, mais je vois pas trop l'avantage et c'est plus "compliqué".
Pourrais tu poster une vidéo par exemple?
Car là c'est pas très évident de comprendre ton besoin (pour moi en tout cas).

Jyslack
Messages : 12
Inscription : 08 Juil 2020 05:23

Re: Rajouter une animation après une apparition

Message par Jyslack » 09 Juil 2020 21:40

J'ai joint mon script et un vidéo. Le script est assez basique et ce site ne veut pas accepter mon vidéo.

Mon problème est que lorsque j'atteint la zone sans mesh visuel pour activer mon script, ce dernier me crée plus d'un clone....si je repasse dessus, d'autres clones peuvent apparaître!

ET.... mon objet commence directement son animation sans l'aide du déclencheur, et quand je instantiate à l'aide du déclencheur, l'objet ne fait que avoir d'autres clones.

Sinon j'ai tenté plusieurs manières, sans succès, pour que l'objet apparaisse dans la zone voulue après avoir activer le script en entrant dans la zone l'enclenchant. Sans animation, l'objet crée plus d'un clone une fois déclenché également.

Je voudrais qu'il y aille qu'un seul clone et que l'objet n'existe pas avant, dans le sens que si je met une animation sur mon objet, elle est déjà enclenchée (brisant la surprise et le flow du jeu) et s'effectue sans que je traverse le déclencheur, ce dernier créant seulement des clones une fois touché.

Je veux que mon personnage enclenche le processus, créant un obstacle qui sera en mouvement (caché dans le sol, remontant au niveau du joueur,,, allant vers la gauche par exemple et retourne dans le sol) à un moment bien précis. La photo démontre seulement l'apparition de plus d'un clone, l'endroit du mouvement n'est qu'un exemple.
Pièces jointes
ScriptApparition.png
ScriptApparition.png (78.7 Kio) Consulté 3825 fois
Appercu bug.png
Appercu bug.png (320.53 Kio) Consulté 3825 fois

Jyslack
Messages : 12
Inscription : 08 Juil 2020 05:23

Re: Rajouter une animation après une apparition

Message par Jyslack » 09 Juil 2020 21:47

Oh et mes objets clonés sont les petites boules en bas à gauche.

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Rajouter une animation après une apparition

Message par DevAmat » 10 Juil 2020 20:59

Je sais pas si c'est moi qui fatigue (les vacances arrivent bientôt et seront salvatrices), mais j'ai littéralement rien compris encore une fois!

Je vais essayer de reformuler.

Le "GameObject" que tu contrôles (le joueur), lorsqu'il entre en collision avec un "GameObject" (une zone) spécial d’éclenche l’instanciation d'un nouveau "GameObject". Lorsque ce dernier apparait, il effectue un mouvement grâce à une animation.
Ton premier problème est à ce niveau là non?
Si oui quel est le comportement attendu et celui que tu as pour le moment?

Ensuite, à priori si tu franchies plusieurs fois la zone avec ton joueur, d'autre "GameObject" sont instanciés.
C'est logique car le script n'a à priori aucune raison de ne se déclencher qu'une seule fois.
Si tu veux qu'il ne se d’éclenche qu'une fois, alors désactive le après la première collision par exemple.

Lorsqu'un de tes "GameObject" est instancié, si il se trouve dans la zone, il va lui aussi provoquer une collision avec celle ci et donc l'instanciation une nouvelle fois d'un "GameObject".
La solution (si tu n'as pas opté pour désactiver ton objet zone dès la première collision) serait de différencier tes "GameObject" avec des tags. Et dans ton script, tu vérifies que c'est bien ton joueur qui d’éclanche la collision grâce au tag.
https://docs.unity3d.com/Manual/Tags.html
https://docs.unity3d.com/ScriptReferenc ... reTag.html

En ce qui concerne l'animation, tu as peux être un souci pour la créer, je ne peux que te conseiller un tuto.
Passer par un script pourquoi pas, mais faut peut être commencer par mettre des mécanismes simples avant de compliquer les choses.

Jyslack
Messages : 12
Inscription : 08 Juil 2020 05:23

Re: Rajouter une animation après une apparition

Message par Jyslack » 10 Juil 2020 21:09

Donc vers quoi dois je aller pour creer qu'un seul clone et non plusieurs? Et sinon l'animation est déjà à l'endroit désiré..sans que je l'active! Dois je aller vers le setactive? Comme démarche...pour que lobjet n'existe pas avant son activation .. j'ai essayé mais mon set active dans le script n'est pas concluant:o

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Rajouter une animation après une apparition

Message par DevAmat » 10 Juil 2020 21:21

Tu peux désactiver le "GameObject" sur lequel tu a ton script, ou mettre une variable qui s'incrémente a chaque collision par exemple.
Pour l'animation, tu veux que ton "GameObject" bouge directement lorsqu'il est crée?

Répondre

Revenir vers « Unity le logiciel »