收集所有物品后自动开门
本教程适用于 Horror Game Kit 用户。
在本教程中,你将使用 计数器(Counter) 组件来追踪可收集物品(collectible)的拾取情况,并在所有物品被收集后自动触发门(door)打开。
本教程将帮助你创建能响应玩家操作的交互式玩法元素。主要流程如下:
- 使用门相关的智能资产(smart assets)配置门(door)。
- 使用 可收集物品(Collectable Item) 智能资产配置可收集物品。
- 使用 计数器(Counter) 和 事件触发器(Event Trigger) 组件实现自动开门。
配置门
找到门的智能资产并自定义门模型。
-
进入 Packages > Horror Game Assets,找到 未上锁的门(Unlocked Door) 智能资产(你也可以使用 上锁的门与钥匙(Locked Door and Key) 资产)。
-
根据需要自定义门模型:
-
如果默认门模型符合你的设计,可直接使用。
-
若需替换模型,选择标记为 Smart 的对象,在属性面板(Properties panel)中更新模型。详细操作可参考模型替换指南(Model Replacement Guide)。
-
配置可收集物品
找到 可收集物品(Collectable Item) 智能资产并自定义物品模型。场景中应有五个可收集物体,每个对应一个 Collectable Item 资产。请确保你的配置与此一致。
-
在 Packages > Horror Game Assets 中找到 Collectable Item 智能资产。
-
自定义可收集物品模型: 可直接使用默认模型,或在属性面板中替换。
-
在场景中创建五个可收集物体,每个都使用 Collectable Item 智能资产。
使用计数器和事件触发器自动开门
为了实现玩法逻辑,需要在所有可收集物品被拾取后自动开门。具体设置如下:
添加空对象
通过快速创建面板(Quick Create panel)创建一个空对象(empty object)。该对象将用于挂载计数器(Counter)和事件触发器(Event Trigger)组件。
给空对象添加并配置计数器组件
-
选中空对象,打开属性窗口(Properties window),从 Horror Logic 包中添加计数器(Counter)组件。
-
配置计数器组件:
属性 说明 Notify Key Value Event 启用后,每当计数变化(如从1到5)时会通知。 Key Value 目标计数。收集5个物品时设为5。 更多详情见 计数器(Counter)。
给空对象添加并配置事件触发器组件
-
给空对象添加 事件触发器(Event Trigger) 组件。
-
配置触发事件:
事件(Event) 说明(Description) 对象(Object) 自身(即空对象本身) OnKeyValueReached 当 KeyValue 达到目标计数时触发。 然后设置动作:
动作(Action) 说明(Description) 对象(Object) 指定未上锁的门(Unlocked Door)。 Open 目标对象的具体行为,如开门。
给每个可收集物品添加并配置事件触发器
为每个可收集物品添加 事件触发器(Event Trigger) 组件。配置 OnPickedUp 事件,在物品被拾取时触发动作,向计数器对象发送 Increase 动作以递增计数。
事件触发器(Event Trigger)
| 事件(Event) | 说明(Description) |
|---|---|
| 对象(Object) | 自身(即可收集物品本身) |
| OnPickedUp | 当目标物品被拾取时触发。 |
然后设置动作:
| 动作(Action) | 说明(Description) |
|---|---|
| 对象(Object) | 指定挂有计数器组件的空对象。 |
| Increase | 计数器的 KeyValue 增加1,例如从0到1。 |
当第一个可收集物品被拾取时,KeyValue 计数器从0增加到1。后续物品同理,每收集一个,计数加1,直到达到5。
在Play Mode下测试
所有组件配置完成后,进入Play Mode测试计数逻辑。收集全部五个物品后,观察门是否自动打开。
故障排查
如果收集所有物品后门未打开,请检查:
- 计数器的 Notify Key Value Event 是否已启用。
- 每个可收集物品的事件触发器是否正确指向计数器对象并使用 Increase 动作。
- 门的事件触发器是否正确设置为响应 OnKeyValueReached。