![alt text](https://github.com/yuyang158/Unity-Extend/raw/master/ReadMeImage/LuaBinding.png)
- LuaBinding.cs
- 支持类型:Unity组件(单个、数组)、string、number、integer、boolean
Unity UI与Lua Table的绑定,整体参考vue
- 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
- 接入sproto协议
- 支持rpc
- 支持断线自动重连
- 示例中连接到测试skynet服务器,服务器为Server文件夹
![示例图片,详情参考AttributeExmple.cs alt text](https://github.com/yuyang158/Unity-Extend/raw/master/ReadMeImage/AttributeExample.png)
- 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次的输入记录
- 通过拦截、分析客户端发送及收到的协议数据生成伪数据
- 功能代码文件:Assets/Resources/Lua/base/MockService.lua
- 选中Assets/Extend/Editor/LuaCheckSetting.asset 设置LuaCheck.exe的路径
- 在Lua文件保存时,自动执行LuaCheck指令,并将结果输出到Console