基于TMP文字顶点效果-波浪
using UnityEngine;
using TMPro;

public class DynamicTMP : MonoBehaviour
{
    public TMP_Text tmp;
    public float Strength = 3.6f;
    public float Space = 0.03f;
    public float Frequently = 2f;

    void Update()
    {
        tmp.ForceMeshUpdate();
        var textInfo = tmp.textInfo;
        for (int i = 0; i < textInfo.characterCount; i++)
        {
            var charInfo = textInfo.characterInfo[i];
            if(!charInfo.isVisible) continue;

            var verts = textInfo.meshInfo[charInfo.materialReferenceIndex].vertices;
            for (int j = 0; j < 4; j++)
            {
                var orig = verts[charInfo.vertexIndex + j];
                verts[charInfo.vertexIndex + j] = orig + new Vector3(0, Mathf.Sin(Time.time * Frequently + orig.x * Space) * Strength, 0);
            }
        }

        for (int i = 0; i < textInfo.meshInfo.Length; i++)
        {
            var meshInfo = textInfo.meshInfo[i];
            meshInfo.mesh.vertices = meshInfo.vertices;
            tmp.UpdateGeometry(meshInfo.mesh, i);
        }
    }
}



首页 我的博客
粤ICP备17103704号