public void StartTickAction(ITickAction tickAction) { if (allActivityActions.Count <= 1000) { var coroutine = StartCoroutine(StartTickCoroutine(tickAction)); allActivityActions.Add(tickAction.GetActionId(), coroutine); } else { Debug.LogWarning("StartTickAction() - list allActivityActions is full, activity id:" + tickAction.GetActionId() + " is not start."); } }
private IEnumerator StartTickCoroutine(ITickAction tickAction) { int actionId = tickAction.GetActionId(); int waitSecond = tickAction.GetWaitSecond(); while (!tickAction.isStop()) { tickAction.DoJob(); yield return(new WaitForSeconds(waitSecond)); } tickAction.DoEndJob(); allActivityActions.Remove(actionId); }