private void Awake() { if (autoStart) { tempRoutine = Facade.StartCoroutine(EnumAction(StartDelay, () => action.Invoke())); } }
protected virtual void SpawnHandler(GameObject go) { if (go == null) { return; } Facade.StartCoroutine(EnumCollect(CollectDelay, () => Facade.DespawnObject(this, go))); }
protected override void SpawnHandler(GameObject go) { if (go == null) { return; } Facade.StartCoroutine(EnumCollect(SpawnObjectGroup[flag].CollectDelay, (tempFlag) => { Facade.DespawnObject(SpawnObjectGroup[Utility.Converter.Int(tempFlag)].SpawnTransform, go); }, flag)); }
IEnumerator EnumAction(object arg, Action handler) { yield return(new WaitForSeconds(Utility.Converter.Float(arg))); handler?.Invoke(); if (loop) { tempRoutine = Facade.StartCoroutine(EnumAction(Interval, () => action.Invoke())); } }
/// <summary> /// 执行的时候可以有延迟 /// </summary> public virtual void ExecuteTimerAction() { if (!RandomInterval) { tempRoutine = Facade.StartCoroutine(EnumAction(Interval, () => action.Invoke())); } else { tempRoutine = Facade.StartCoroutine(EnumAction(Interval + Utility.Unity.Random(-RandomRange, RandomRange), () => action.Invoke())); } }