# Unity+Xlua+AssetBundle热更新Demo **Repository Path**: mengtest/Unity-Xlua-AssetBundle-HotUpdataDemo ## Basic Information - **Project Name**: Unity+Xlua+AssetBundle热更新Demo - **Description**: 用Xlua框架实现热更新的示例项目,附带7个Xlua使用教程Demo - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-02-29 - **Last Updated**: 2024-02-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Unity+Xlua+AssetBundle热更新Demo #### 介绍 用Xlua框架实现热更新的示例项目,附带7个Xlua使用教程Demo #### 软件架构 项目中的两个场景 ExampleScene 和 HotUpdateScene 分别为教程示例和热更新示例。 #### 安装教程 1. 本项目使用的Unity版本为2021.3.17f1c1 2. 导入Assets中的文件到UnityAssets文件夹中 3. 复制Tools文件夹到UnityAssets文件夹同级目录下 4. 安装Wampserver,安装完成之后复制Hotfix文件夹到www/CDN文件夹下 #### 使用说明 ##### xlua教程 1. 打开ExampleScene场景 2. 其中GameStart下挂载的7个脚本分别对应着Scripts/DemoProject下7个文件夹,可以选择其中任意一个激活 3. 每个文件夹下都有一个Resources文件夹,每个教程对应的Lua脚本放在里面 3. 每个文件夹对应的内容: 1. 1_HelloWorld :HelloWorld 2. 2_LuaFile :字符串执行Lua文件 3. 3_CustomLoader :更换lua加载器 4. 4_CCallLuaVar :C#深拷贝Lua中的变量,以及使用类、接口浅拷贝Lua中的teble 5. 5_LuaFunction :引用Lua中的function,分为无返回值、单个返回值和多个返回值的方法 6. 6_LuaCallC :设定Lua环境上值,让Lua脚本引用当前C#类的属性、委托 7. 7_UIEvent :使用Lua脚本控制UI ##### xlua热更新 1. 打开HotUpdateScene场景 2. 在File->Build Setting->Scripting Define Symbols下添加HOTFIX_ENABLE,并重启Unity 3. 点击XLua->Generate Code,等待编译完成 4. 点击XLua->Hotfix Inject In Editor,等待完成 5. 如果你已经将Hotfix文件夹到www/CDN文件夹下了,点击运行将出现![](1.jpg) 此时热更新脚本已成功加载 6. 将Hotfix文件夹下的内容删除(提前备份),点击运行将出现![](2.jpg) 此时处于没有进行热更新的状态 7. 热更Lua脚本在Scripts/HotUpdataDemo/Resources文件夹下 8. 如果需要自己生成热更文件: 1. 需要设置Lua脚本的AssetBundle为lua.u3d 2. 点击XLua->Clear Generated Code 3. 点击Tools->CreateBundle,等待编译完成 4. 将工程根目录下生成的AB文件夹中的所有文件复制到Hotfix内替换原来的文件 5. 点击XLua->Generate Code,等待编译完成 6. 点击XLua->Hotfix Inject In Editor,等待完成 7. ps:你需要按照你的相应文件名更改ExcuteHotfix脚本中Lua文件的名字,和你的Lua脚本中加载的AB包以及资源的名字 #### 参与贡献 1. Xlua教程1:https://www.bilibili.com/video/BV1h4411w72e 2. Xlua教程2:https://www.bilibili.com/video/BV1G4411c73B 3. Xlua热更新:https://www.bilibili.com/video/BV1W4411F7x5