创建与使用脚本
自 1.5.0 版本起,Horror Game Kit 集成 Lua 脚本。你可为对象创建自定义组件,修改属性和行为,响应用户输入。Lua 脚本还可配置全局设置和玩法功能,提升设计与交互自由度。
创建脚本
点击属性窗口右下角 添加脚本 按钮,新脚本将创建于项目脚本文件夹。输入脚本文件名,建议命名规范以便后续管理。

输入组件名后,会自动生成并在 VS Code 打开两个 Lua 脚本:
{组件名}.lua:实现运行时逻辑{组件名}.editor.lua:定义属性窗口字段
脚本文件结构
{组件名}.lua 默认内容如下:
script.OnStart(function ()
---初始化组件
end)
script.OnUpdate(function ()
--- 在此实现组件的每帧更新逻辑。该函数每帧调用一次。
end)
OnUpdate 回调用于处理 Yahaha 对象的每帧更新,例如移动、触发事件、处理用户输入等。为获得最佳性能,建议在游戏开始前于 OnStart 回调中初始化变量、读取偏好设置、建立与其他 Yahaha 对象的连接。OnStart 在游戏开始前调用,适合放置初始化逻辑。
每次将组件附加到 Yahaha 对象时,都会创建一个新的组件实例,并在独立沙盒中运行。这样可防止同一脚本组件在不同对象间互相干扰,保证运行稳定可靠。
{组件名}.editor.lua 默认内容如下:
local fieldDefs = {
--- 在属性窗口定义组件字段。
{
name = "moveSpeed",
type = "Vector3",
label = "移动速度",
hint = "指定对象移动速度",
default = Vector3(1, 0, 0)
}
}
script.DefineFields(fieldDefs)
上述代码通过本地变量 fieldDefs 以表的形式定义了脚本组件的自定义字段。
该字段包含多个属性:name(内部标识)、type(数据类型)、label(属性窗口显示名)、hint(简要说明)、default(默认值)。
最后通过 script.DefineFields(fieldDefs) 注册这些字段,使其在 YAHAHA Studio 的属性窗口中可见和可编辑。这样开发者可为组件创建直观的自定义属性界面,方便用户无需直接修改脚本即可调整参数。
控制 Yahaha 对象
如上所述,脚本仅定义组件蓝图,需附加到 Yahaha 对象实例后才会生效。实例在属性窗口显示如 下:

进入 Play 模式后,脚本开始运行,可在底部工具栏控制台查看调试日志。
