组件字段与属性窗口
可用 Lua 脚本创建带可编辑属性的组件,方便在属性窗口自定义。新建组件时会自动生成两个 Lua 脚本:一个.lua脚本用于运行时逻辑,一个.editor.lua脚本用于定义可编辑字段。
以默认移动组件为例,.editor.lua 文件定义了移动速度字段:
local fieldDefs = {
---在属性窗口定义字段
{
name = "moveSpeed",
type = "Vector3",
label = "移动速度",
hint = "指定对象移动速度",
default = Vector3(1, 0, 0)
}
}
script.DefineFields(fieldDefs)
每个带该组件的 Yahaha 对象都可设置独立移动速度。在 .lua 脚本中可通过 script.fields.fieldName 获取字段值。例如移动组件可按速度更新位置:
script.OnUpdate(function (deltaTime)
---每帧更新逻辑
script.gameObject.transform.position = script.gameObject.transform.position + script.fields.moveSpeed * deltaTime
end)
在 .lua 脚本中,您可以通过 script.fields.fieldName. 来获取字段值。例如,移动组件(Move Component)可以按指定速度移动游戏对象。
脚本名到组件名的转换
属性窗口会按特定规则将您的脚本名称转换为显示标签。例如,示例中的脚本组件名已从 movespeed 转换为 Movespeed。具体规则如下:
- 首字母大写
- 小写与大写间加空格
- "_" 替换为空格
- 多余空格合并为一个