summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/Components/UnitEffect.cs
blob: 9add65139895db512a6fc108833312ae8810f3c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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<EffectHandle> effects = new List<EffectHandle>();
    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);
            }
        }
    }

}