| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | using UnityEngine;using System.Collections;namespace TMPro.Examples{        public class ShaderPropAnimator : MonoBehaviour    {        private Renderer m_Renderer;        private Material m_Material;        public AnimationCurve GlowCurve;        public float m_frame;        void Awake()        {            // Cache a reference to object's renderer            m_Renderer = GetComponent<Renderer>();            // Cache a reference to object's material and create an instance by doing so.            m_Material = m_Renderer.material;        }        void Start()        {            StartCoroutine(AnimateProperties());        }        IEnumerator AnimateProperties()        {            //float lightAngle;            float glowPower;            m_frame = Random.Range(0f, 1f);            while (true)            {                //lightAngle = (m_Material.GetFloat(ShaderPropertyIDs.ID_LightAngle) + Time.deltaTime) % 6.2831853f;                //m_Material.SetFloat(ShaderPropertyIDs.ID_LightAngle, lightAngle);                glowPower = GlowCurve.Evaluate(m_frame);                m_Material.SetFloat(ShaderUtilities.ID_GlowPower, glowPower);                m_frame += Time.deltaTime * Random.Range(0.2f, 0.3f);                yield return new WaitForEndOfFrame();            }        }    }}
 |