Unity Animation
Le but de cet outil est de créer des effets d'animation (élastique, rebond, exponentiel, etc...) de manière simplifiée et générique.
Les animations peuvent aller de Vector2, Vector3 à Quaternion, float, int, etc...
Cet outil est donc customisable afin de donner une animation dynamique avec effets qui prend des valeurs minimales et maximales variables d'un scénario à l'autre.

Voici l'exemple d'un script de test. Le script utilise les utils qui s'utilise au minimum avec 2 arguments (la valeur finale, et la durée de l'animation), énormément de champs optionnels existe comme le type de l'animation et le sens de l'animation.
L'animation manager s'occupera de gérer toutes les animations existantes et de les mettre à jour au runtime.
Versions du projet
Séparation des animations génériques en deux branches
Les "Managed Animations" qui sont géré par l'utilisateur en passant par le pipeline de mise à jour des animations
Les "Fixed Animations" qui si l'utilisateur ne renseigne pas de pipeline de mise à jour, est géré via du code unsafe pour mettre à jour automatiquement à l'adresse mémoire la variable correspondante
Ajout de 28 nouveaux types d'animations
Ajout d'utils (500 lignes)
Les animations prennent désormais un deuxième argument générique qui laisse à l'utilisateur la possibilité de passer n'importe quel objet qui sera envoyé dans le pipeline d'update des animations, ce qui revient à réduire le Garbage Collector généré en évitant les appels externes des fonctions lambda.
Ajout de la récupération au runtime de la progression de l'animation (entre 0 et 1)
Réécriture de toutes les formules d'animation pour profiter du Burst Compiler de Unity
Ajout d'utils (400 lignes)
Suppression des Components Unity pour passer sur des instances de classes (Performances obligent j'ai décidé de couper la partie GD car je considère que les Animators de Unity sont fait pour les animations fixes)
Ajout de près de 300 lignes d'utils en méthode d'extension pour pouvoir faire par exemple "transform.MoveTo()"
Optimisations en précalculant les valeurs à interpoler
Ajout des animations génériques
Chaque animation implémente sa propre évaluation de l'animation
Ajout d'un Animation Manager
Ajout d'un système d'animation tweakable via l'éditeur Unity pour les GD

Ajout d'un Debug des Animations pour prévisualiser les animations dans le monde sans lancer le jeu

Base du projet Unity
Création d'un component Unity "Simple Animation" qui gère l'avancement dynamique d'une valeur dans un temps donné avec une transition
Création de toutes les animations