当前位置: 首页 > article >正文

Lua调用C#协程

核心就是先require("xlua.util")

然后就可以通过cs_generator函数将方法传入

例如:mono:StartCoroutine(util.cs_generator(fun))

print("*********Lua调用C# 协程相关知识点***********")
--xlua提供的一个工具表
--一定是要通过require调用之后 才能用
util = require("xlua.util")
--C#中协程启动都是通过继承了Mono的类 通过里面的启动函数StartCoroutine

GameObject = CS.UnityEngine.GameObject
WaitForSeconds = CS.UnityEngine.WaitForSeconds
--在场景中新建一个空物体  然后挂一个脚本上去 脚本继承mono使用它来开启协程
local obj = GameObject("Coroutine")
local mono = obj:AddComponent(typeof(CS.LuaCallCSharp))

--希望用来被开启的协程函数 
fun = function()
	local a = 1
	while true do
		--lua中 不能直接使用 C#中的 yield return 
		--就使用lua中的协程返回
		coroutine.yield(WaitForSeconds(1))
		print(a)
		a = a + 1
		if a > 10 then
			--停止协程和C#当中一样
			mono:StopCoroutine(b)
		end
	end
end
--我们不能直接将 lua函数传入到开启协程中!!!!!
--如果要把lua函数当做协程函数传入
--必须 先调用 xlua.util中的cs_generator(lua函数)
b = mono:StartCoroutine(util.cs_generator(fun))


http://www.kler.cn/a/290918.html

相关文章:

  • 如何学习Trustzone
  • 上传文件(vue3)
  • GESP CCF C++八级编程等级考试认证真题 2024年12月
  • 【深度学习】零基础介绍循环神经网络(RNN)
  • STM32F103 | Embedded IDE03 - 使用OpenOCD在STM32F103项目时出现下载固件失败
  • malloc 分配大堆块(128KB)的一次探索
  • 快速幂算法——求解大指数幂
  • 咖啡与开源访谈 -- Ian Taylor
  • onvif应用--IPC鉴权(认证)
  • 数学基础 -- 微积分之数列与级数
  • AI学习指南深度学习篇-SGD的变种算法
  • Linux【6】系统
  • leetcode 94.二叉树的中序遍历
  • JS中数组的方法flat()怎么用
  • 使用Spring Cloud Consul进行分布式配置的深度解析与实战
  • 使用vscode编辑matlab完美解决方法
  • Python Magic Method 与 Setup 方法:深入解析与应用
  • 【C++】类和对象(三)再探构造函数|static成员函数|友元函数|内部类|匿名对象|对象拷贝时的编译优化
  • 新一代交互模式:LUICUIVUI
  • 基于web旅游信息平台的设计与实现
  • MATLAB实现跳频多频移键控通信系统仿真
  • 记录Jmeter 通过view result tree配置保存响应信息的方法以及命令行运行时的一个坑
  • C++中protobuffer的具体使用方法以及重要原理的实现
  • 尚硅谷前端 ES6 笔记
  • 网恋照妖镜源码搭建教程
  • Java IO异常处理:在Web爬虫开发中的实践