using System.Collections;
using UnityEngine;
public class SignalTest : MonoBehaviour
{
public float blinkSpeed = 5;
private Material mat;
private bool isOn;
private Color startColor;
void Start()
{
var ren = GetComponent<Renderer>();
mat = Instantiate(ren.sharedMaterial);
ren.sharedMaterial = mat;
startColor = mat.GetColor("_EmissionColor");
SetColor(0);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
if (!isOn)
{
isOn = true;
StartCoroutine(Cor());
}
else isOn = false;
}
}
IEnumerator Cor()
{
float t = 0;
while (isOn)
{
t += Time.deltaTime*blinkSpeed;
float t1 = Mathf.PingPong(t, 1);
SetColor(t1);
yield return null;
}
t = Mathf.PingPong(t, 1);
while (t>0)
{
t -= Time.deltaTime * blinkSpeed;
SetColor(t);
yield return null;
}
}
void SetColor(float time)
{
Color col = Color.Lerp(Color.black, startColor, time);
mat.SetColor("_EmissionColor", col);
}
}