using UnityEngine; public class WarningBlink : MonoBehaviour { public float rate = 1f; private int _tintId; private Color _color; private float _ratio; private Material _material; private void Awake() { _tintId = Shader.PropertyToID("_TintColor"); _material = GetComponent<Renderer>().material; _color = _material.GetColor(_tintId); } private void OnEnable() { _ratio = 0f; } private void OnDestroy() { if (_material != null) Destroy(_material); } private void Update() { _ratio += Time.deltaTime * rate; if (_ratio > 1f) _ratio = _ratio - Mathf.Floor(_ratio); var colorRatio = 1f - Mathf.Abs(_ratio - 0.5f) * 2f; _color.a = colorRatio; _material.SetColor(_tintId, _color); } }