示例#1
0
        /// <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);
        }