//放一个MonoBehaviour // using System.Collections; using UnityEngine; using XLua; namespace XGame { [LuaCallCSharp] public class XWCoroutine : MonoBehaviour { private static XWCoroutine instance; public static XWCoroutine Instance { get { if (instance == null) { GameObject obj = GameObject.Find("CoroutineManager"); if(obj == null) obj = new GameObject("CoroutineManager"); instance = obj.AddComponent(); DontDestroyOnLoad(obj); } return instance; } } public static XWCoroutine GetInstance() { return Instance; } public static void StartCo(IEnumerator coroutine) { instance.StartCoroutine(coroutine); } // 在 Lua 中调用的协程函数 public Coroutine StartLuaCoroutine(IEnumerator coroutine) { return StartCoroutine(coroutine); } } }