/// <summary> /// 시간 누적 및 기록 제거 /// </summary> public void LateUpdate() { for (int i = 0; i < m_FilterInfoList.Count; i++) { m_FilterInfoList.ElementAt(i).m_fTimer += Time.deltaTime; if (m_FilterInfoList.ElementAt(i).m_fTimer >= m_fTime) { RemoveFilterInfo(m_FilterInfoList.ElementAt(i)); } } }
//public void OnGUI() //{ //} /// <summary> /// 각 객체별로 코루틴을 다음단계로 진행시킵니다. 끝까지 진행된 코루틴은 Updater내부에서 폐기 시킵니다. /// </summary> void LateUpdate() { //PartyManager.StartStopWatch("코루틴메인"); for (int i = 0; i < m_ObjectList.Count; i++) { CustomDictionary <IEnumerator, Updater> UpdaterList = m_ObjectList.ElementAt(i).m_CoroutineList; for (int j = 0; j < UpdaterList.Count; j++) { Updater CurrCoroutine = UpdaterList.ElementAt(j); CurrCoroutine.MainRoutine(); } } //PartyManager.EndStopWatch("코루틴메인"); }
/// <summary> /// 해당 객체가 소유하고 있는 모든 코루틴을 제거하고 해당 객체또한 객체 리스트에서 제거합니다. /// </summary> /// <param name="Mono"></param> public void RemoveAllCoroutines(MonoBehaviour Mono) { int nMonoKey = Mono.GetInstanceID(); ///해당 객체가 없다면 if (!m_ObjectList.ContainsKey(nMonoKey)) { return; } CustomDictionary <IEnumerator, Updater> CoroutineList = m_ObjectList[nMonoKey].m_CoroutineList; for (int i = 0; i < CoroutineList.Count; i++) { if (RemoveCoroutine(nMonoKey, CoroutineList.ElementAt(i))) { i--; } } }