/// <summary> /// Start a coroutine on a new gameObject /// </summary> /// <returns></returns> /// <param name="coroutine"></param> public static OneShotCoroutine PlayCoroutine(IEnumerator coroutine) { #if NET_4_6 string coroutineName = (useEmptyNames) ? string.Empty : $"Coroutine: {coroutine.ToString()}"; #else string coroutineName = (useEmptyNames) ? string.Empty : string.Format("Coro: {0}", coroutine.ToString()); #endif GameObject coroutinePlayer = new GameObject(coroutineName); #if UNITY_EDITOR if (hiddenInHierarchy) { coroutinePlayer.hideFlags = underTheHoodFlags; } #endif OneShotCoroutine oneShotCoroutineComponent = coroutinePlayer.AddComponent <OneShotCoroutine>(); oneShotCoroutineComponent.LaunchCoroutine(coroutine); return(oneShotCoroutineComponent); }