https://github.com/badawe/TMP-Text-Juicer
Is a plugin to allow you do "per-character-animation" on text fields, like this one:
This git is a ready to be used as sub-module, so just add to your project anywhere inside the Assets Folder, something like Assets/Text Juicer/
If you don't know how to add as a sub-module you can check this guide
Or you can just download the Unity Package
Basically you can access and change the progress of the animation by the animator itself, or using the helpers inside the TextAnimation, by simply caling, Play()
, Stop()
and Restart()
Is quite simple, you just need to extend the BaseVertexModifier, and you have access to change whatever you want, in the example bellow, is using a curve to simple multiply the Y from the position itself, generating this effect
using UnityEngine;
namespace TextAnimation.Effects
{
public class YVertexModifier : BaseVertexModifier
{
[SerializeField]
private AnimationCurve curve = new AnimationCurve(new Keyframe(0,1));
public override void Apply(CharController charController, ref UIVertex uiVertex)
{
uiVertex.position.y *= curve.Evaluate(charController.Progress);
}
}
}
You can add multiple effects at same time, like the PerCharacter and the X Modifier
Current Effects:
- X
- Y
- Color Modifier
- Cylinder
- Scale Vertex Modifier
- Glitch
You can check effects accessing this link:
Inspired in this post from reddit, and the awesome ui-extensions