TimerManager计时任务管理器

      public void Start()
            {
                running = true;
            }

            public void Stop()
            {
                stopped = true;
                running = false;
            }

            public void Pause()
            {
                paused = true;
            }

            public void UnPause()
            {
                paused = false;
            }
        }

        private List<TimerState> timerList = new List<TimerState>();

        private void Update()
        {
            for (int i = 0; i < timerList.Count ; i++)
            {
                timerList[i].UpdateTime(timerList[i].ignoreTimeScale ? Time.realtimeSinceStartup : Time.deltaTime);
            }
        }

        public TimerState CreateTimer(float time, TimeUnit timeUnit,bool ignoreTimeScale)
        {
            TimerState newTimer = new TimerState(time, timeUnit, ignoreTimeScale);
            timerList.Add(newTimer);
            return newTimer;
        }

        public void ClearTimer() { }
        public void ClearAllTimer() { }
    }
}
 

使用案例 

public class text : MonoBehaviour {

    // Use this for initialization
    void Start () {
        Time.timeScale = 3;

        Timer timer = new Timer(1, TimeUnit.Second); //第三个参数是否忽略时间缩放带来的影响
        timer.Loop = true; // 设置可循环
        timer.Finished += rw; 
    }

    private void rw()
    {
        Debug.Log("你好");
    }
}
--------------------- 

posted @ 2019-07-31 17:30  水至清明  阅读(823)  评论(0)    收藏  举报