Files
source/Assets/Scripts/BouncyText.cs
2026-01-30 23:25:53 -07:00

31 lines
817 B
C#

using TMPro;
using UnityEngine;
[RequireComponent(typeof(TextMeshProUGUI))]
public class BouncyText : MonoBehaviour
{
[SerializeField] private float frequency = 2f;
[SerializeField] private float minSize = 10f;
[SerializeField] private float maxSize = 12f;
[SerializeField] private bool add;
private TextMeshProUGUI text;
private float startSize = 0;
void Awake()
{
text = GetComponent<TextMeshProUGUI>();
if (add)
{
text.ForceMeshUpdate();
startSize = text.fontSize;
text.enableAutoSizing = false;
}
}
void Update()
{
float newsize = (Mathf.Sin(Time.time * frequency) + 1f) / 2f;
text.fontSize = Mathf.Lerp(add ? startSize : minSize, maxSize + (add ? startSize : 0), newsize);
}
}