在此执行操作中,可以更改以下三类数据:
- 对象的变量/开关
- 数据库中的数据(此处也包含项目通用的变量/开关)
- 各节点的属性
下面将逐一进行说明。
1. 对象的变量/开关
可以更改存储在各对象的 SwitchSettings/VariableSettings 节点中的变量/开关。
但请注意,以下变量/开关为只读变量,无法更改。
| 类型 | 名称 |
|---|---|
| 开关 | is_locked, is_touching_portal |
| 变量 | object_id, stayed_area_id, visible_direction, x_speed, y_speed, player_id, controller_id, taken_damage |
存在只读变量/开关的原因
这些变量/开关是为了在“相关链接条件”中的“开关/变量发生变化”条件中使用而存在的。由于无法直接将属性值作为条件使用,因此将其作为开关/变量联动存储。
2. 数据库中的数据
可以更改用户数据库、项目变量和项目开关。
类型预设和声音数据库无法通过此执行操作进行访问。
使用变量指定记录选项
此选项允许通过对象变量来指定记录(行)。
如果指定变量的值为 5,则选择指定列中从上往下数第 5 行的记录。
例如,在创建物品数据库并显示获取物品信息的状态时,使用此选项即可在一个状态中完成。若不使用该选项,则需根据物品 ID 的数量进行多次分支判断。
3. 各节点的属性
不仅限于 ACTION GAME MAKER 专用的节点,还可以更改各节点的属性值。
原则上可以更改任何属性,以下是一些示例操作:
- 在 MoveAndJumpSettings 中启用加速移动属性以切换移动类型。
- 修改 Sprite2D 的 Visible 属性以隐藏对象。
- 启用 HitCollision 的 Disabled(禁用)属性以禁用碰撞检测。
- 将 Label 节点的文本替换为数据库中的字符串数据以显示其他文本。
针对父对象时的行为
仅在以父对象为目标时,不会执行目标场景的判定。
因此,即使父对象指定的场景不同,只要存在相同的条目,即可正常运作。
借此可以创建如伤害判定等通用的子对象。
使用“更改属性”操作时的注意事项
更改用户变量/开关/节点的顺序可能导致目标错位
由于 Godot 的限制,更改操作是通过 Index(顺序)指定的。
系统会执行“更改从上往下第 X 个属性”的操作。
因此,如果执行“删除中间的变量并上移”或“交换节点”等操作,已设置的行动引用将全部错位。
当以已锁定对象或指定对象等为目标时,若在文件系统中移动目标场景、更改文件名或文件夹名等操作,将导致无法正常运行。
这是因为各目标场景的路径是以“字符串”形式指定的。
虽然 Godot 本身在文件系统中移动场景时会自动更新路径,但 ACTION GAME MAKER 操作中指定的路径仅为普通“字符串”,因此不会自动更新。
此措施是为了规避 Godot 强大的递归循环检测/阻止系统。