IEnumerator Hurting(float duration) { foreach (float alpha in AlphaCurve.Power(duration, 3.0F)) { hurt.color = Color.Lerp(colorHurt, Color.clear, alpha); yield return(null); } }
IEnumerator ShowMessage(float duration) { foreach (float alpha in AlphaCurve.PowerInverse(duration, 3.0F)) { graphic.color = new Color(1.0F, 1.0F, 1.0F, alpha); yield return(null); } }
private IEnumerator Tracing(Vector3 from, Vector3 to, float speed, float length, Color color) { float distance = Vector3.Distance(from, to); float duration = distance / speed; Tracer tracer = tracerPool.Poll(); foreach (float alpha in AlphaCurve.Linear(duration)) { Vector3 tip = Vector3.Lerp(from, to, alpha); Vector3 tail = Vector3.Lerp(from, to, alpha - length / distance); tracer.SetPoints(tip, tail); yield return(null); } (tracer as IPoolable)?.RequestReclaim(); }
// Update is called once per frame void Update() { timer += Time.deltaTime; //位置 var pos = transform.position; pos.y = PosyCurve.Evaluate(timer); transform.position = pos; //半透明 Color c = new Color(1, 1, 1, AlphaCurve.Evaluate(timer)); transform.Find("SpriteBigHantei").GetComponent <SpriteRenderer>().color = c; transform.Find("SpriteSmallHantei").GetComponent <SpriteRenderer>().color = c; //タイムアップ if (timer > 0.3f) { Destroy(gameObject); } }