Setting up texts
You can set texts to Text Animator from two different UI systems:
UI Toolkit
P.S. Assuming you already know how to use UI Toolkit and what it does.
From the UI Builder
Go to Library -> Project
Drag "AnimatedLabel" from "Custom Controls/Febucci/Text Animator for Unity" in your hierarchy!
Your .uxml should look like this:

Via Code
You can create an instance of the "Febucci.TextAnimatorForUnity.AnimatedLabel" class and add it to your UI document, like this:
using UnityEngine;
using UnityEngine.UIElements;
using Febucci.TextAnimatorForUnity; // <- import Text Animator's namespace
public class ExampleScript : MonoBehaviour
{
[SerializeField] UIDocument document;
void Start()
{
var container = document.rootVisualElement.contentContainer;
var animatedLabel = new AnimatedLabel(); // <- create an animated label
container.Add(animatedLabel); // <- add it to the content container
// [..]
animatedLabel.SetText("<wave>hello"); // <- set the text
}
}That's all!! You are ready for How to add effects
Text Mesh Pro
P.S. Assuming you already know how to use Text Mesh Pro and how it works.
Add a Text Animator - Text Mesh Pro component on the same GameObject that has a TextMeshPro component (either UI or world space!):
Your inspector should look like this:

That's all!! You are ready for How to add effects
If you're seeing empty texts (but have set them in the component), make sure that you have clicked at least once on a TextMeshPro component and imported the "Essentials" (once their window will pop up and ask you to do so).
Best Practices for setting text via code
To set the text to your TextMeshPro object via code, please reference Text Animator's script instead of TMPro, like the following:
using UnityEngine;
using TMPro;
using Febucci.TextAnimatorForUnity.TextMeshPro; // <- import Text Animator's namespace
public class ExampleScript : MonoBehaviour
{
[SerializeField] TMP_Text textMeshPro;
[SerializeField] TextAnimator_TMP textAnimator;
void Start()
{
// 🚫 Don't: set text through TMPro
textMeshPro.SetText("<wave>hello");
// ✅ Do: set text through Text Animator directly
textAnimator.SetText("<wave>hello");
}
}Best Practices
Set the entire text/dialogue only once
Please try to set text just once, and use the typewriter / visibility methods to control how it appears.