public void Blink(Shader _shader, Color _color, float _duration) { StopCoroutine("Blink_CO"); BlinkParams blinkParams = new BlinkParams(_shader, _color, _duration); StartCoroutine("Blink_CO", blinkParams); }
protected virtual IEnumerator Blink_CO(BlinkParams _params) { SetSkinnedMeshShader(_params.shader); float timer = 0.0f; while (timer <= _params.duration) { float ratio = timer / _params.duration; ratio = exEase.ExpoOut(ratio); ratio = Mathf.PingPong(ratio * 2.0f, 1.0f); Color clr = Color.Lerp(Color.black, _params.color, ratio); SetBlinkColor(clr); // timer += Time.deltaTime; yield return(null); } ResetMaterials(); }