数据元素及其类型
数据元素
数据元素(Data elements)是玩法组件(gameplay component)或社区组件(community component)可自定义的数据。在 Yahaha Studio(Studio)中,创作者可通过界面操作(interface operations)为社区组件自定义数据元素。如需更高级的自定义选项,可通过 API(API)管理数据元素。
每个数据元素都对应一个 XML 文件(XML file)。在 Studio 中,选择组件,启用 高级模式(Advanced Mode),然后点击 层级(Hierarchy) 旁的 打开(Open) 按钮即可访问数据元素的 XML 文件。
代码示例
以下为控制 Rotate 组件(Rotate component)的代码示例。打开其 XML 文件可查看层级结构,某个节点如下:
</Node>
<Node active="True" type="LuaNode">
<Name>loopMode</Name>
<Label key="rotation.loopMode">循环模式(Looping mode)</Label>
<Hint key="rotation.loopMode.hint">旋转次数(Rotation No.):设置旋转一次或无限次。
类型(Type):设置循环旋转类型,可单向旋转或往返运动。</Hint>
<Children>
<Field id="10" active="True" type="DropdownField">
<Name>times</Name>
<Label key="rotation.loopMode.times">旋转次数(Rotation No.)</Label>
<Value default="1">1</Value>
<Options>
<Option value="1">
<Label key="rotation.loopMode.times.1">一次(One time)</Label>
</Option>
<Option value="2">
<Label key="rotation.loopMode.times.2">无限次(Infinite times)</Label>
</Option>
</Options>
</Field>
<Field id="11" active="True" type="DropdownField">
<Name>mode</Name>
<Label key="rotation.loopMode.mode">类型(Type)</Label>
<Value default="1">1</Value>
<Options>
<Option value="1">
<Label key="rotation.loopMode.mode.1">单向(One-way)</Label>
</Option>
<Option value="2">
<Label key="rotation.loopMode.mode.2">双向(Two-way)</Label>
</Option>
</Options>
</Field>
</Children>
</Node>
通过组件操作方法更新 Rotate 组件的值:
-- 创建一个空的 YahahaObject 并获取其 ID
local testObjectID = createEmpty()
-- 为新对象添加 Rotate 组件并获取其数据元素
local componentDataElement = addComponent(testObjectID,GameplayComponent.Rotate)
-- 获取数据元素的 'loopingMode' 节点
local loopMode = getNode(componentDataElement , "loopMode")
-- 将 'loopMode' 节点的 'times' 变量设置为 2,实现对象的双向旋转
updateModuleData(loopMode, LuaElementType.Dropdown, "times", 2)
数据元素类型
用于确定 Lua 元素类型(type)的枚举(Enum for determining the type of the Lua element)。
| 属性 | 说明 |
|---|---|
| Float | 浮点数 值(floating number value) |
| Float2 | 描述二维空间中的向量(vector in 2D spaces) |
| Float3 | 描述三维空间中的向量(vector in 3D spaces) |
| Time | 提供不大于 0.1 秒的时间分辨率(time resolution) |
| Int | 整数值(integer value) |
| Dropdown | 下拉选项(dropdown),允许用户从预设选项中选择一个 |
| Radio | 单选按钮(radio),允许用户从一组选项中选择一个 |
| Checkbox | 复选框(checkbox),允许用户切换布尔值开关 |
| Toggle | 切换开关(toggle),提供更美观的布尔值切换界面 |
| Button | 可点击按钮(button),触发事件或函数 |
| String | 字符串或文本值(string or text value) |
| Vfx | 特效文件(visual effects file) |
| Model | 模型资产(model asset) |
| Entity | 可放置在场景中的实体资产(entity asset) |
| Id | ID 编号(ID number) |
| Items | 可用于装饰场景并与玩家交互的游戏资产(game asset) |
| Custom | 自定义类型(custom),允许用户根据特定约束输入自定义值 |
| Bool3 | 包含三个布尔值的表/列表(table/list of three boolean values) |
| Color | 颜色值(color value) |
| Animation | 动画资产文件(animation asset file) |
| PlayableAudio | 可在运行时播放的音频文件(audio file) |
| Icon | 图片或图标元素(image or icon element) |
| LuaNode | 可展开节点(expandable node),用于配置社区组件。用户可点击节点左侧箭头展开,访问更多社区组件配置信息。 |