Unity热更新学习(二) —— ToLua c#与lua的相互调用
tolua 下载地址:http://www.ulua.org/index.html
c#调用lua的方法,tolua的官方例子提供了很多种。我初步学了一种在做项目使用的方法。通过DoFile方法执行lua脚本。目前只在windows环境下的Unity上测试,没有在真机运行。
一、创建一个c# script,封装一下LogError方法
1 public class GameDebug { 2 public static void LogError(object msg) 3 { 4 Debug.LogError("打印:" + msg.ToString()); 5 } 6 }
View Code
并把这个类加到CustomSetting里,并wrap一下
二、创建一个lua脚本
local Main = {};local c1,c2; -- 游戏主入口 function Main:GameEnter() GameDebug.LogError("从这开始"); endreturn Main;
View Code
三、创建一个c# script并注册lua虚拟机,把这个script挂在场景里的某个GameObject上
1 void Start () { 2 //创建lua虚拟机 3 luaState = new LuaState(); 4 5 //绑定lua虚拟机 6 LuaBinder.Bind(luaState); 7 luaState.Start(); 8 9 LuaTable lt = luaState.DoFile<LuaTable>("Main.lua"); 10 //调用lua游戏入口 11 lt.Call("GameEnter", lt); 12 lt.Dispose(); 13 }
View Code
运行结果:
转载于:https://www.cnblogs.com/yougoo/p/9795005.html
Unity热更新学习(二) —— ToLua c#与lua的相互调用相关推荐
- Unity热更新技术整理
一.热更新学习介绍 1.什么是热更新 举例来说: 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新 ...
- C# 实现 rtc_通过Xlua实现unity热更新的一个小例子
通过Xlua实现unity热更新的一个小例子 一.介绍 热更新是指在更新游戏资源或者逻辑的时候不需要开发者将游戏再打包.发布.玩家重新下载安装包,而是可以通过将需要更新的资源打包成AssetBun ...
- unity案例 mysql lua_通过Xlua实现unity热更新的一个小例子
通过Xlua实现unity热更新的一个小例子 一.介绍 热更新是指在更新游戏资源或者逻辑的时候不需要开发者将游戏再打包.发布.玩家重新下载安装包,而是可以通过将需要更新的资源打包成AssetBun ...
- Unity3D热更新技术点——ToLua(上)
注: 本文主要介绍tolua的基本原理及其在unity中的使用,希望阅读本文的读者有lua基础,可通过Lua教程 (其中也有IDE的推荐等)或其他途径先进行lua 的学习 热更新 在介绍tolua前, ...
- Unity热更新机制
前言 游戏上线后,难免会有一些测试阶段没发现的bug,bug这东西,可大可小. 如果出现重大bug,而又没有热更技术,那么我们为了修复bug就只能强制玩家去商店下载新包,那造成的玩家流失是非常可怕的. ...
- [Unity热更新]04.卸载方式
[Unity热更新]04.卸载方式 参考链接: https://www.jianshu.com/p/b37ee8cea04c 1.AssetBundle.Unload(false):释放AssetBu ...
- xLua热更新(二)实现热更新
一.环境配置 要实现热更新功能,我们首先需要开启热更新的宏.操作方法是在「File->Build Settings->Player Settings->Player->Othe ...
- unity 热更新:C#与Lua相互调用(转载)
一.基本原理 简单地说,c#调用lua, 是c# 通过Pinvoke方式调用了lua的dll(一个C库),然后这个dll执行了lua脚本. ULua = Lua + LuaJit(解析器.解释器) + ...
- 腾讯开源手游热更新方案,Unity3D下的Lua编程
写在前面 \\ xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能.易用性.扩展性而广受好评.现在,腾讯已经将xLua开源到GitHub. ...
最新文章
- CRM User Status profile中Business Transaction字段的用途
- Theano深度学习入门
- 电脑小白来一起学习计算机基础知识!
- 巴特沃斯滤波器python_如何用Scipy.signal.bu实现带通巴特沃斯滤波器
- Maven-依赖调解/查看项目依赖了哪些包
- CCF201604试题
- [Angular Tutorial] 3-Components
- python保存路径_Python模块的正确存放位置
- [AV1] 谈谈AV1中的 S-Frame
- Unity 一分钟学会适配IOS刘海屏
- Android涂鸦框架Doodle——仿微信图片编辑(多功能画板)
- 图像的低频,中频,高频信息含义?
- 【推荐】元宇宙通证MetaVerse行业发展报告游戏白皮书(共97份,400M)
- python播放url音频_如何从URL播放mp3
- 猿如意中的【格式工厂】工具的安装与使用教程,格式转换这个工具就够了
- 传统园区转智慧园区方面
- MacBook Pro 方向左键不能用 和MacBook Pro的一些常用修复
- UnionLotto随机摇号程序
- 物流推荐|分流分拣式滚筒输送机 河北滚筒输送机实现多品种共线分流输送
- PTA L1-056 猜数字 (20 分)
热门文章
- gcc 编译多个源文件-转
- [Java] 蓝桥杯ADV-170 算法提高 数字黑洞
- 关于蓝桥杯竞赛考试的一些信息~
- 蓝桥杯 ADV-127 算法提高 日期计算
- 蓝桥杯 ALGO-141 算法训练 P1102
- PAT 乙级 1022. D进制的A+B (20) Java版
- 1106. Lowest Price in Supply Chain (25)-PAT甲级真题(dfs,bfs,树的遍历)
- 解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
- eclipse导入远程git代码及(push、pull、及maven工程导入)
- Linux中,shell脚本调用java程序模板