写一个C#的协程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [Hotfix] public class HotFix_Lesson_03 : MonoBehaviour { private void Start() { LuaManager.Instance.Require("Main"); StartCoroutine(CsCoroutine()); } IEnumerator CsCoroutine() { while (true) { yield return new WaitForSeconds(1f); Debug.Log("Csharp的协程"); } } }
|
替换步骤
为类加上特性
先生成代码
再生成补丁
回忆xlua创建协程的步骤
- 需要
util
生成协程函数
- 需要
coroutine
来延时
1 2 3 4 5 6 7 8 9 10 11 12
| util = require("xlua.util") xlua.hotfix(CS.HotFix_Lesson_03, { CsCoroutine = function(self) return util.cs_generator(function() while true do coroutine.yield(CS.UnityEngine.WaitForSeconds(1)) print("lua的协程") end end) end })
|
注意
这里替换的函数并不是直接写一个协程函数
而是用以1个匿名函数返回一个xlua
生成的协程函数