[MY-AL] Animation, responsivité, code

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
master500
Messages : 4
Inscription : 11 Juil 2017 23:51

[MY-AL] Animation, responsivité, code

Message par master500 » 19 Sep 2017 17:32

Bonjour tout le monde,
Je viens vers vous car j'ai deux questions concernant les animations, au lancement de ma scène une animation tourne en boucle j'aimerai la stopper lorsque l'utilisateur clique sur l'écran. J'arrive à le faire sauf que je voudrai la stopper lorsque l'animation arrive dans son état finale et pas avant sinon l'objet qui traverse la scène reste en plein milieu et ce n'est pas propre. J'entoure en rouge sur la première photo l'état au quel je voudrai qu'il soit.
Capture d’écran 2017-09-19 à 17.17.19.png
pb 2
Capture d’écran 2017-09-19 à 17.17.19.png (15.25 Kio) Consulté 2994 fois
Voici les solutions que j'ai essayé de mettre en place pour résoudre ce problème :
-Décocher LoopTime dans le code
-Un modulo avec le temps générale et le temps de l'application avant de la stopper.

Code : Tout sélectionner

while((Time.DeltaTime %0.3)!=0) anim.enabled=false;
anim.enabled=true;
-Creer une animation dans l'animateur ne contenant que l'étape finale avec un paramètre bool que je mettais à vrai dans le code.

Dans tout les cas soit mon animation s'arrête en cours de route soit rien ne change.

Mon deuxième problème concerne la deuxième photo.
Capture d’écran 2017-09-19 à 17.23.59.png
pb 1
Capture d’écran 2017-09-19 à 17.23.59.png (47.63 Kio) Consulté 2994 fois
Voila je créée une application pour mobile et je n'ai pas l'habitude des moteurs de jeu d'habitude je code "à la main".
Mais puisque la position et la taille de mes sprites sont des pourcentages en fonction du nombre de pixel (ça marche plutôt bien). La position de base de ces animations est donc à prévoir elle aussi, ce n'est pas un problème j'ai déjà l'algorithme mais je n'ai pas trouvé dans la doc comment accéder à ces données via le code.

Avatar de l’utilisateur
evereal
Messages : 109
Inscription : 06 Nov 2015 18:46

Re: [MY-AL] Animation, responsivité, code

Message par evereal » 20 Sep 2017 09:00

Hello,

A ta place je passerai par un animator Controler.
La dedans tu as un paramètre qui s'appelle 'hasExitTime' à cocher. Puis tu mets une variable comme condition de changement d'état et tu manipule cette variable dans ton code.
Solution la plus simple et robuste mais tu vas devoir te documenter sur l'animator Controler
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”

master500
Messages : 4
Inscription : 11 Juil 2017 23:51

Re: [MY-AL] Animation, responsivité, code

Message par master500 » 21 Sep 2017 00:11

Bonjour,

Merci pour ta réponse, il ne me reste plus qu'à apprendre à maitriser le controller !

quelqu'un aurait une réponse concernant ma deuxième question ?

Avatar de l’utilisateur
evereal
Messages : 109
Inscription : 06 Nov 2015 18:46

Re: [MY-AL] Animation, responsivité, code

Message par evereal » 21 Sep 2017 08:24

Si j'ai bien compris la 2eme question :
https://docs.unity3d.com/ScriptReference/Screen.html
Screen.width et Screen.height
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”

master500
Messages : 4
Inscription : 11 Juil 2017 23:51

Re: [MY-AL] Animation, responsivité, code

Message par master500 » 21 Sep 2017 09:25

Bonjour,

J'apporte quelques réponses concernant ma première questions. Utilisez l'animator controller ici ne me semble pas adapté, dans mon cas j'utilise une image unique sur laquelle je modifie des paramètres, aucun rapport avec l'animation d'un personnage où l'on manipule un enchainement d'image.
La solution la plus nette que j'ai trouvé à l'heure actuelle c'est mettre l'application sur "enabled=true;" puis de récupérer les coordonnées du sprites pour finalement simuler la fin de l'animation dans le code.

Concernant ma deuxième questions :

Non j'ai du mal m'exprimer je m'excuse je reprend :
J'utilise déjà ces fonctions. Plus concrètement comment je modifie la valeur de "anchored position" à t0,t1,t2,...tn dans le code ?

Capture d’écran 2017-09-21 à 09.22.20.png
Capture d’écran 2017-09-21 à 09.22.20.png (14.91 Kio) Consulté 2912 fois
L'utilité serait de produire ce genre de code :

Si (largeurEcran < 750)
Alors
Anim1.t0.AnchoredPosition.x = 350
Fin si

etc pour autant de dimensions et de taille d'écran. J'ai écris n'importe quoi c'est un exemple bien sur. On peut aussi imaginer d'avoir une résolution de référence puis on réduit proportionnellement la taille.

Un grand merci à celui qui pourra m'aider sur ce point, je n'ai rien trouvé de semblable sur le net, pourtant cela a déjà du être utilisé pour adapter une animation à la taille de l'écran de l'utilisateur.

Répondre

Revenir vers « (C#) CSharp »