Vertical

iTween : La librairie indispensable !

iTween ?

Si vous codez en Unity depuis quelques temps vous avez  surement dû entendre parler d’iTween. Cette librairie en C# codée par Bob Berkebile est surement la plus populaire pour Unity. Concrètement iTween c’est une seule classe capable de réaliser des interpolations de valeurs. Cela permet de réaliser tout un ensemble d’animations. Je ne vais pas détailler ici tous les usages de la classe mais simplement les plus courants. Libre à vous de découvrir tous ces autres usages par la suite.

Animations

La principale utilité d’iTween est de permettre de réaliser des translations, rotations et de l’homothétie de gameobject. Pour utiliser une méthode d’iTween il y a deux solutions. La première consiste à écrire son appel en 1 ligne :

iTween.MoveTo(gameObject,Vector3(2,0,0),2);

Celle ligne permet de faire se déplacer le “gameobject” vers la position 2,0,0 en 2 secondes.

La 2eme solution consiste à placer tous les paramètres de notre appel dans une HashTable avant de l’appeler :

Hashtable ht = new Hashtable();
ht.Add("position",new Vector3(2,0,0));
ht.Add("time",2f);
iTween.MoveTo(gameObject,ht);

Ici la Hastable réalise la même animation que la ligne de l’exemple précédent. Je vous conseille de toujours utiliser une Hashtable pour vous y retrouver plus facilement dans vos tweens.

On peut utiliser de la même manière les méthodes RotateTo ou ScaleTo.

iTween.RotateTo(gameObject,Vector3(360f,0,0),2f);
iTween.ScaleTo(gameObject,Vector3(2f,2f,2f),2f);

Les EaseType et LoopType

Les interpolations réalisées par iTween ne sont pas forcément linéaires. Elles peuvent suivre des courbes très variées. C’est ce qu’on appelle les EaseType, il en existe plus d’une dizaine. Ils sont tous ensuite disponibles en trois “versions” : atténué au début (EaseIn), atténué à la fin (EaseOut) et atténué au début et à la fin (EaseInOut).

Pour ajouter une atténuation à un tween il suffit d’ajouter celle-ci dans la HashTable du tween :

 ht.Add("easetype", iTween.EaseType.easeOutQuint);

De la même manière on peut également gérer la répétition de l’animation directement avec une option de tween : LoopType. Il y a trois types de LoopType :

  • none = Do not loop.
  • loop = Rewind and replay.
  • pingPong = Ping pong the animation back and forth.
On les utilise de la même manière :
ht.Add("looptype",iTween.LoopType.pingPong);

Ces deux options sont très pratiques pour manipuler des gameobjects d’interface par exemple (un bouton qui grossit, un texte qui défile…).

Callbacks

Une fonctionnalité très utile d’iTween permet d’utiliser trois types  de callback : onstart, onupdate et oncomplete. Cela permet d’appeler une méthode spécifique soit au début du tween, soit pendant son execution (à chaque changement de valeur), soit à la fin de son exécution. C’est extrémement utile pour savoir quand une animation se termine par exemple ou pour réaliser des usages spécifiques d’iTween.

Exemple du onUpdate pour réaliser un fading :

Hashtable ht = new Hashtable();
ht.Add("from",0);
ht.Add("to",1f);
ht.Add("time",2f);
ht.Add("onupdate","myUpdateFunction");
iTween.ValueTo(gameObject,ht);

void myUpdateFunction(float val){
   myFade = val;
}

Lorsque vous utilisez les callback n’oubliez pas de préciser la cible du callback (le GameObject qui contient la méthode du callback) et les paramètres du callback. Exemple :

ht.Add("onupdateparams",myFloat);
ht.Add("onupdatetarget",myTargetGameobject);

(Dans un valueTo le param est fourni par défaut avec la valeur interpolée.)

Les autres callback s’utilisent de la même manière.

Conclusion

iTween permet de faire énormément de chose. Dès que l’on souhaite faire varier une variable ou un GameObject d’une valeur à une autre on peut utiliser iTween. Cela remplace avantageusement les animations “traditionnelles” simples de mesh par exemple. Les animations réalisées sont facilement paramétrables et utilisent peu de ressources. Par contre les tweens sont limités à un par type par gameObject (on ne peut pas faire deux moveTo en même temps sur un même gameObject). Cet article n’est qu’une introduction aux fonctionnalités d’iTween et il existe encore de nombreux paramètres pour les tweens à découvrir !

N’hésitez pas à visiter le site d’iTween ici : https://itween.pixelplacement.com/index.php

ARTICLE SIMILAIRE: Utiliser les SendMessage pour appeler des méthodes distantes

VOUS CHERCHEZ UN PARTENAIRE POUR RÉALISER UN JEU VIDÉO ?   VOUS AVEZ UN PROJET D’APPLICATION LUDIQUE ?  CONTACTEZ-NOUS!

Categories: Plugin, Unity3D

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *