public static void StopSingleCoroutines(this ISingleCoroutine target, params int[] indexes) { for (int i = 0; i < indexes.Length; i++) { StopSingleCoroutine(target, indexes[i]); } }
public static void StopSingleCoroutine(this ISingleCoroutine target, int index = 0) { int targetIndex = CoroutineManager.QuestForIndex(target, index); if (CoroutineManager.Dic_Coroutines.ContainsKey(targetIndex) && CoroutineManager.Dic_Coroutines[targetIndex] != null) { CoroutineManager.Instance.StopCoroutine(CoroutineManager.Dic_Coroutines[targetIndex]); } }
internal static int QuestForIndex(ISingleCoroutine target, int index) { int targetIndex = 0; if (!L_Target.Contains(target)) { L_Target.Add(target); } targetIndex += L_Target.FindIndex(p => p == target) * 1000; targetIndex += index; return(targetIndex); }
public static void StopAllSingleCoroutines(this ISingleCoroutine target) { int min = 0, max = 0; CoroutineManager.QuestForRange(target, ref min, ref max); foreach (int index in CoroutineManager.Dic_Coroutines.Keys) { if (index >= min && index <= max) { if (CoroutineManager.Dic_Coroutines.ContainsKey(index) && CoroutineManager.Dic_Coroutines[index] != null) { CoroutineManager.Instance.StopCoroutine(CoroutineManager.Dic_Coroutines[index]); } } } }
public static void StartSingleCoroutine(this ISingleCoroutine target, int index, IEnumerator numerator) { if (index < 0) { Debug.LogWarning(" Should Not Add Coroutine Index Which Below 0"); } int targetIndex = CoroutineManager.QuestForIndex(target, index); if (CoroutineManager.Dic_Coroutines.ContainsKey(targetIndex)) { if (CoroutineManager.Dic_Coroutines[targetIndex] != null) { CoroutineManager.Instance.StopCoroutine(CoroutineManager.Dic_Coroutines[targetIndex]); } } else { CoroutineManager.Dic_Coroutines.Add(targetIndex, null); } CoroutineManager.Dic_Coroutines[targetIndex] = CoroutineManager.Instance.StartCoroutine(numerator); }
internal static void QuestForRange(ISingleCoroutine target, ref int min, ref int max) { min = L_Target.FindIndex(p => p == target) * 1000; max = min + 999; }