Unity3D热更新(三)Me-slua 框架

发表于2018-08-29
评论0 2.8k浏览
框架地址 https://github.com/lulersoft/me_SLua

公司在这个基础上改了一些,已经又做了新的功能,可能不能适用。参考性不强,写在这里是为了工作方便记忆。

1.创建一个prefabs,指定assetBundle,后缀名为ab文件,使用插件打包。路径:RES/模块名称/prefab

2.打包成ab,编辑器sc-打包ab-打包选中的对象。路径:Date/asset/ios

3.创建一个lua文件,写业务逻辑,要放在lua文件夹下面的对应模块下面 路径:Lua/模块名称/view/UI

4.修改lua文件,比如LoginRoot LoginView添加代码  rootsconfig定义每个模块的root名和路径   functions文件定义了一些lua里引用u3d方法

loginRoot里实例化对象      不一定写在这两个文件里,但是一到要加入ab包和创建prefab
function main:onAdd()
PUI=GameObject.Find("PUI") 
        //参数   prefabs名字  资源包名字 lua脚本路径   父对象
testtest=self:CreatePrefab("Test.prefab","testtest.ab","login/view/ui/Test.lua",PUI)
end

LoginView里加入ab包
local bundles = {"loginpanel.ab","testtest.ab"}

5.同步lua,编辑器school-1.同步lua到下载文件夹。  路径:mac缓存文件夹。lua也同步到:Date/Lua/模块名称/view/UI ,并且加密。

6.最后初始化游戏 自动生成一个  ab.manifest的资源依赖关系配置文件

操作工程中一共有6个文件。

UNITY3D封装成lua的方法在api.cs中

local yaoQuanShuPlayBtn=nil    yaoQuanShuPlayBtn=main["YQS_BG__YQS_BGImage__YQS_PlayBtn"]  关联u3d对象和lua变量   子对象中间加__
写对象的引用的时候,如果有层级关系,一定要从挂lua脚本的物体往下写(不包含这个物体),否则找不到,很坑。
实用update方法,要先打开,this.usingUpdate = true;  用完再关闭

类上加 [CustomLuaClassAttribute] 是提供给lua来调用,需要make一下。

string.Substring(1,3) //从第一个字符开始取,取3个

GIF版本控制SourceTree使用
1.拉取一个远程仓库到本地,建一个本地分支。
2.提交的时候先推送到远端上的本地分支。
3.将master拉取到最新,然后合并到本地分支。
4.将本地master推送到远端master.
来自:https://blog.csdn.net/u012322710/article/details/51005614

Unity3D热更新系列:

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引