XLua热更新框架学习(一)
欢迎加入Unity业内qq交流群:956187480
qq扫描二维码加群
Xlua源码地址:https://github.com/Tencent/xLua
Xlua热更其实是补丁式的热更,跟其他的方式不一样的是初始版本都是用的c#开发,只要在后期需要更新的地方打上补丁标签,而补丁逻辑就用lua替换掉原有的逻辑。xlua降低了初始版本的开发成本。此框架只有更新逻辑,下载更新功能需要另外处理
一:下载Xlua
Xlua源码分为完整版跟开发版两种,完整版里面包含很多演示案例工具等,我们用于开发的直接下载开发版即可
二.导入Xlua
1.创建新的unity项目,创建好资源管理文件夹
2.将XLua中的Plugins和XLua文件夹拷贝到项目中
三.C#调用Lua
a.调用内部lua代码
1.引入XLua命名空间,在XLua中运行Lua代码的虚拟机就是LuaEnv
2.一个LuaEnv实例就是一个Lua虚拟机,建议全局唯一
LuaEnv luaEnv = new LuaEnv();luaEnv.DoString("print('My Name Is HSJ')");
b.调用外部Lua文件
1.在Resources文件夹下创建一个Lua文件,文件的后缀需要是txt,格式:fileName.lua.txt
2.在c#的代码中通过lua虚拟机调用DoString()方法加载执行该lua文件;luaEnv.DoString("require 'fileName'");
不需要写lua文件的准确路径,只要把lua文件放到resources路径下即可。(此处存疑)
luaEnv.DoString("require 'Hsj'");
c.c#获取Lua代码中的数据
lua代码:
a = 100
b = '幻世界'
c = truefunction MyName()print('My Name Is Hsj')
end
c#代码
LuaEnv luaEnv = new LuaEnv();luaEnv.DoString("print('My Name Is HSJ')");luaEnv.DoString("require 'Hsj'");int a = luaEnv.Global.Get<int>("a");string b = luaEnv.Global.Get<string>("b");bool c = luaEnv.Global.Get<bool>("c");LuaFunction MyName = luaEnv.Global.Get<LuaFunction>("MyName");Debug.Log(a);Debug.Log(b);Debug.Log(c);MyName.Call();
四:lua调用c#
1.Lua调用c#需要在c#的命名空间之前加前缀:“CS.”
2.CS.UnityEngine.GameObject 获取c#中的类
CS.UnityEngine.Debug.Log 获取c#中的方法
CS.UnityEngine.GameObject.Find 获取c#中的方法
3.演示
lua代码:
local GameObject = CS.UnityEngine.GameObject
local Debug = CS.UnityEngine.Debuglocal go = GameObject('Hsj_LUa')
Debug.Log(go.name)
local myCamera = GameObject.Find('Main Camera')
Debug.Log(myCamera.name)
原工程地址:https://download.csdn.net/download/qq_37310110/11812518
本人是根据擅码网的monkey老师的教学视频学习的:http://www.mkcode.net/
欢迎加入Unity业内qq交流群:956187480
qq扫描二维码加群
XLua热更新框架学习(一)相关推荐
- XLua热更新框架学习(二)
欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 原工程地址:https://download.csdn.net/download/qq_37310110/11812518 之 ...
- lua 函数 默认值_Unity热更新框架之xLua
一:xLua概述 二:Lua文件加载 三:xLua文件配置 四:Lua与C#交互 五:xLua热更新 一:xLua概述 1.1 xLua简介 xLua是由腾讯维护的一个开源项目,xLua为Unity. ...
- 视频教程-热更新框架设计之热更流程与热补丁视频课程-Unity3D
热更新框架设计之热更流程与热补丁视频课程 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过程.软件架构设 ...
- 视频教程-热更新框架设计之客户端热更框架(中部)视频课程-Unity3D
热更新框架设计之客户端热更框架(中部)视频课程 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过程.软件 ...
- XLua热更新入门教程
导航 什么是XLua XLua与其他热更新方案比优势 XLua热更新流程 教程环境 安装过程 开始写代码 补充说明 什么是XLua XLua是腾讯开源的一款Unity热更新插件 XLua与其他热更新方 ...
- 修改html时webpack热更新,webpack学习之路(二)webpack-dev-server实现热更新
上一章对webpack的配置有了简单的认识. 这一章,我需要学习的是webpack热更新,因为在开发过程中,不希望当文件更改时,人肉去编译文件,刷新浏览器. webpack热更新 webpack-de ...
- iOS代码质量要求_Unity移动端代码热更新技术学习总结
为什么需要热更新 游戏总是伴随着不断的开发与维护,我们不能要求玩家每次都将游戏客户端卸载重装,所以需要热更新技术来在不需要重装客户端的情况下下载更新游戏里的代码(其实资源也需要热更新,但是因为操作系统 ...
- xLua热更新(二)实现热更新
一.环境配置 要实现热更新功能,我们首先需要开启热更新的宏.操作方法是在「File->Build Settings->Player Settings->Player->Othe ...
- xLua热更新(一)xLua基本使用
一.什么是xLua xLua为Unity. .Net. Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用. xLua是用来实现Lua代码与C#代码相互调 ...
最新文章
- TensorRT宏碁自建云(BYOC, BuildYourOwnCloud)上集成
- JavaScript权威指南(第六版) 初读笔记
- Hough 检测直线
- MVC --.Routing
- 每日一算法 ---- 打印九九乘法表
- 译 | 宣布ML.NET 1.2 及模型生成器更新(用于 .NET 的机器学习)
- cmd控制屏幕光标_电脑控制手机?上班时间愉快尽情地玩手机吧!它值得您拥有!...
- ObjectOutputStream 和 ObjectInputStream类的简单介绍,及运用。
- CodeForces #549 Div.2 ELynyrd Skynyrd 倍增算法
- Device Tree Usage(转)https://elinux.org/Device_Tree_Usage
- python有关迭代器和生成器的面试题_python面试题之生成器迭代器
- 安卓模拟器genymotion连接eclipse成功但是不显示其中项目
- MFC对COM接口编写的支持分析
- 2017 CIMS计算机集成制造系统 paper 数字孪生及其应用探索
- Windows内核结构
- java 16进制转中文乱码
- LARS算法---十折交叉验证
- 数据分析之 AB测试(AB Test)
- C语言实验——圆周率 sdut oj
- matlab求解常微分方程的实验,实验五 - - 用matlab求解常微分方程