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

源码建站教程贵州省住房和城乡建设厅网站-首页

源码建站教程,贵州省住房和城乡建设厅网站-首页,校园信息网站开发与设计,网站建设费专票会计分录文章目录 工具准备协程测试 工具准备 首先是工具脚本,一个Coroutine_Runner.cs和一个cs_coroutine.lua 前者定义了一个继承自Monobehavior的脚本组件,后者则使用lua去在Unity中实例化一个挂载该组件的GameObject,并将其设置为DontDestroyOn…

文章目录

    • 工具准备
    • 协程测试

工具准备

首先是工具脚本,一个Coroutine_Runner.cs和一个cs_coroutine.lua

前者定义了一个继承自Monobehavior的脚本组件,后者则使用lua去在Unity中实例化一个挂载该组件的GameObject,并将其设置为DontDestroyOnLoad,将其开启和停止协程的方法封装成一个表返回

Coroutine_Runner.cs

namespace XLuaTest
{public class Coroutine_Runner : MonoBehaviour{}public static class CoroutineConfig{[LuaCallCSharp]public static List<Type> LuaCallCSharp{get{return new List<Type>(){typeof(WaitForSeconds),typeof(WWW)};}}}
}

cs_coroutine.lua

local util = require 'xlua.util'local gameobject = CS.UnityEngine.GameObject('Coroutine_Runner')
CS.UnityEngine.Object.DontDestroyOnLoad(gameobject)
local cs_coroutine_runner = gameobject:AddComponent(typeof(CS.XLuaTest.Coroutine_Runner))return {start = function(...)return cs_coroutine_runner:StartCoroutine(util.cs_generator(...))end;stop = function(coroutine)cs_coroutine_runner:StopCoroutine(coroutine)end
}

协程测试

测试流程:

通过C#脚本CourontineTest创建lua环境并require ‘corontine_test’,在教程中这会找到与C#脚本在同一层级的Resources文件夹,并索引到该文件夹下的coruntine_test.lua文件

接着在lua文件中去请求工具文件cs_coroutine,让其创建一个辅助lua协程的对象,并接收一个封装了该对象的创建和停止协程的方法的表

接着通过向start函数中传入lambda函数来创建协程,使用本地变量保存这些协程,传入stop函数中可以终止这些协程

使用lua的coroutine.yield函数可以实现unity的协程yield

具体lua流程:

  • 创建协程a :打印’coroutine a started’,阻塞等待协程内新创建的b
  • 跳转协程b :打印’coroutine b stated inside cotoutine a’,等待1秒,打印’i am coroutine b’
  • 返回协程a :返回协程a,打印’coroutine b finish’。之后无限循环,每1秒打印一次’i am coroutine a’
  • 创建协程a同时创建的协程c :打印’stop coroutine a after 5 seconds’,等待5秒后,终止协程a,打印’coroutine a stoped’,协程c结束
local cs_coroutine = (require 'cs_coroutine')local a = cs_coroutine.start(function()print('coroutine a started')coroutine.yield(cs_coroutine.start(function() print('coroutine b stated inside cotoutine a')coroutine.yield(CS.UnityEngine.WaitForSeconds(1))print('i am coroutine b')end))print('coroutine b finish')while true docoroutine.yield(CS.UnityEngine.WaitForSeconds(1))print('i am coroutine a')end
end)cs_coroutine.start(function()print('stop coroutine a after 5 seconds')coroutine.yield(CS.UnityEngine.WaitForSeconds(5))cs_coroutine.stop(a)print('coroutine a stoped')
end)
http://www.yayakq.cn/news/241134/

相关文章:

  • 视频网站点击链接怎么做汕头建站价格
  • 工会网站群建设制作小动画的软件
  • 静态网站站内搜索建设银行有没有全球门户网站
  • 网站做分屏好不好wordpress 美化
  • 建筑公司网站新年贺词云浮建设网站
  • 长春市长春网站建设西安优惠电商平台网站
  • 做网站需要自备服务器吗100个最全的免费网站
  • 中元建设集团股份有限公司网站WordPress卡密充值怎么用
  • 网站界面尺寸大小wordpress建好站了打不开首页
  • 网站开发税率是多少页面设计参考
  • 织梦网站模板后台密码找回小红书企业推广
  • 网站建设主管的策划案重庆专业网站推广费用
  • 深圳中英文网站建设域名证书查询网站
  • 好的logo设计网站郑州专业做淘宝直播网站
  • 中文域名网站有哪些wordpress更改邮箱设置
  • 网站开发与设计的实训报告建网页还是网站
  • 福建百益建设集团有限公司网站安卓系统开发公司
  • 网站投诉平台杭州最好的工业设计公司
  • 网站开发文档源码抖音搜索排名优化
  • 仪征市建设局网站网站轮播代码
  • 宁波网站设计推广培训班杭州网站建设 网站设计
  • 网络游戏那个网站做的最好网站后台维护教程视频
  • 建博客网站百度人工投诉电话是多少
  • 物联网对企业网站建设的要求网站模版库
  • 重庆教育集团建设公司网站免费搭建网站的软件
  • 辽宁网站建站优化公司企业公示信息查询系统辽宁
  • 深圳网站营销公司简介网站提示危险怎么办
  • 免费空间+网站空间+虚拟主机市场调研公司
  • 宁波正规网站建设方式上海网站推广公司
  • wordpress制作小说网站模板襄阳市做网站