You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.3 KiB
51 lines
1.3 KiB
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(); |
|
} |
|
} |
|
} |
|
}
|
|
|