using System.Collections; using System.Collections.Generic; using UnityEngine; public class EffectHandle { public float lifeTime; public float curTime; public bool markDead; } //Unit后处理效果 public class UnitEffect : UnitComponent { public List effects = new List(); public static GameObject effectPlane; public void ShowMotionBlur(float lifetime) { EffectHandle eff = new EffectHandle(); eff.lifeTime = lifetime; eff.curTime = 0; eff.markDead = false; effects.Add(eff); effectPlane.gameObject.SetActive(true); } public override void OnUpdate() { base.OnUpdate(); effectPlane.transform.position = UnitManager.Instance.pc.center; for(int i = 0; i < effects.Count; ++i) { if (effects[i].markDead) continue; effects[i].curTime += Time.deltaTime; if(effects[i].curTime > effects[i].lifeTime) { effects[i].markDead = true; effectPlane.gameObject.SetActive(false); } } } }