- LuaBinding.cs
- 支持类型:Unity组件(单个、数组)、string、number、integer、boolean
- LuaMVVMBinding.cs LuaMVVMForEach.cs
- BindingDemo场景中MVVM开头相关节点
local binding = require("mvvm.binding")
local a = binding.build({
data = {
a1 = 1,
a2 = 2,
a3 = "3"
},
computed = {
c1 = function(this)
return this.a1 + this.a2
end
}
})
local b = binding.build({
mixins = {a},
data = {
b1 = 1,
b2 = 2,
b3 = "3"
}
})
print(b.c1, b.b1)
- 读取以\t为分隔符的tsv文件
- 格式:第一行为Key,第二行为该列类型,第三行为列描述
- 支持类型 int number string json link boolean AssetReference
- link类型为外链id,可以在lua中直接访问对应链接表
- AssetReference类型实际为Unity中资源的GUID,可通过Tools/Excel Asset Tool编辑
- 相关实现代码为 Lua/ConfigService.lua
- 手动强制指定文件夹AssetBundleName
- 自动分析资源依赖,去除依赖短链
- 自动生成文件位置描述
- 自动生成更新描述文件
- CI:https://github.com/yuyang158/Unity-Extend/tree/master/Tools/Jenkins
- Lua、配置不放在Unity工程,增加迭代速度
- Editor使用AssetDatabase,Runtime使用AssetBundle自动切换
- 异步加载,加载流量控制
- 接入sproto协议
- 支持rpc
- 支持断线自动重连
- 示例中连接到测试skynet服务器,服务器为Server文件夹
- HideIf (可以设置某个变量为某个值时隐藏该属性)
- ShowIf (可以设置某个变量为某个值时显示该属性)
- LabelText (覆盖变量的DisplayLable)
- ReorderList (针对数组、List型变量优化为ReorderableList编辑,如上图D)
- Require (变量不可为空)
- AssetOnly (可快捷编辑上图E右侧画笔)
- AssetReferenceAssetType (Asset系统资源通过GUID连接)
- EnumToggleButtons (将枚举值并列为几个按钮,如上图Enum Value)
- Button (Method Attribute,可以在Inspector中生成一个该函数的按钮)
- 基于ScriptableObject(EventInstance.cs)生成的文件作为事件参数,解决命名错误、多个重复事件的问题
- 全局事件功能(LuaGlobalEvent.cs),通过组件发送全局事件。可以在Lua、C#侧注册回掉相应。处理某些通用响应逻辑。
- 在游戏客户端内接收Unity Log回掉,显示Log输出,方便在非编辑器状态下查看Log
- Error级Log自动弹出
- 指令输入功能
- 通过键盘上的上下键查看最近10次的输入记录
- 通过Http将需要执行的Lua代码上传到服务器(服务器代码目录:UnityRemoteCmd)
- http://127.0.0.1/?cmd=devices 获取所有在线设备
- http://127.0.0.1/?cmd=lua&device=604
- Method: POST
- Body: lua代码
- Content-Type: text/plain
- http服务器将代码发送到客户端RemoteCmdClient执行
- 客户端调用Lua全局函数Global_DebugFunction处理发过来的代码
- 预览地址:http://private-tunnel.site:4888/index.html#/lua/lua
- 通过拦截、分析客户端发送及收到的协议数据生成伪数据
- 功能代码文件:Assets/Resources/Lua/base/MockService.lua
- 选中Assets/Extend/Editor/LuaCheckSetting.asset 设置LuaCheck.exe的路径
- 在Lua文件保存时,自动执行LuaCheck指令,并将结果输出到Console