当前位置: 代码迷 >> 综合 >> XLua 的async_to_sync使用步骤
  详细解决方案

XLua 的async_to_sync使用步骤

热度:41   发布时间:2024-01-22 06:26:25.0

1. C#端写一个方法,最后一个需要是Callback, 可以支持带参数

 public static void ShowConfirmBox(string message, string title, Action<bool> onFinished = null)

2. 用util.async_to_sync定义一个lua的变量与C#绑定

local sync_confirm = util.async_to_sync(CS.XLuaTest.MessageBox.ShowConfirmBox) 

3. 调用local ret = sync_confirm(message, title), 它的返回值就是1中最后的callback的参数

4. 定义协程方法

local buy = function()message_box.alert("您余额不足,请充值!", "余额提醒")if message_box.confirm("确认充值10元吗?", "确认框") thenlocal r1, r2 = recharge(10)print('recharge result:', r1, r2)message_box.alert("充值成功!", "提示")elseprint('cancel')message_box.alert("取消充值!", "提示")endprint('recharge finished')
end

5. 启动协程

util.coroutine_call(buy)

 

这时候我们定义的ShowConfirmBox,就相当于是协程阶段的一个步骤,走到这一步就会等待callback才会继续走下去

  相关解决方案