视觉脚本教程(逻辑方块)
创建可收集物品
Lesson 5 of 10 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
在本课中,我们将准备将作为游戏中可收集物品使用的物品。
我们将配置其视觉网格,应用材质和纹理,添加与玩家交互所需的碰撞,定义一个识别标签,并创建一个简单的运动逻辑,以使物品在场景中更加可见和吸引人。
可收集物品在游戏中非常常见。它们可以代表金币、钥匙、生命值补给、子弹、增益道具、任务物品或任何其他玩家可以触摸和收集的物品。在本课中,我们将重点准备物品本身。稍后,玩家逻辑将能够检测到此物品并进行收集。
1. 创建物品
在内容面板中,创建一个新的资产,类型为实体模板。
该实体模板将作为我们可收集物品的基础。由于可收集物品通常在一个关卡中重复使用很多次,因此将其创建为实体模板是正确的做法。这样,您可以在场景中放置多个相同物品的实例,如果您稍后更改模板,所有实例都可以从同一源更新。

打开实体模板以便我们可以编辑它。
然后将实体重命名为Item,并创建一个新的网格,它将负责物体的可视表示。
在组件部分,添加一个变换组件。变换使实体可以访问位置、旋转和缩放属性,这些属性在3D世界中放置和操作物品是必要的。
之后,再添加一个刚体组件。该组件将负责物品在场景中的物理和碰撞行为。

在刚体组件中,启用幽灵选项。
启用此选项后,物品仍然能够检测碰撞和交互,但它不会物理阻挡角色的移动。
这正是我们通常希望可收集物品的行为。玩家应该能够穿过物品,而游戏应该将接触检测为交互。如果物品具有常规的固体碰撞,它可能会阻挡玩家或推动周围物体,这通常不是拾取物品所期望的行为。

此时,您可以将3D模型导入Cave并将其用作物品的网格。
在本示例中,我们将仅使用从纹理创建的2D图标,因此无需导入自定义模型。但请随意根据项目的需要自定义物品的视觉外观。
例如,您可以使用:
- 一个金币模型
- 一个钥匙模型
- 一个药水瓶
- 一个漂浮的水晶
- 一个增益道具图标
- 一个简单的纹理平面
现在,像之前创建实体一样,在内容面板中创建一个新的材质。
然后根据您希望为游戏创建的视觉风格进行配置,添加必要的纹理,例如漫反射图、法线贴图或您想使用的任何其他贴图。


在配置完材质后,将其应用于物品的网格,以定义其在场景中的外观。
网格定义了将要渲染的形状,而材质定义了该形状的视觉外观,包括其颜色、纹理、粗糙度、法线信息和其他与着色器相关的属性。


出于组织目的,内容面板允许您自由创建文件夹以更好地构建项目资产。
一个好的做法是创建一个名为Item的文件夹,并将所有与该可收集物品相关的文件移动到其中,例如实体模板、材质、纹理以及此对象使用的任何其他资源。
保持资产有序可以更轻松地导航项目,提高工作效率,并使随着游戏增长而维护变得更简单。

现在让我们为我们的物品创建一个新的逻辑砖。
该逻辑砖将负责为物体添加持续旋转,使其更容易引起玩家在场景中的注意。
这种运动在可收集物品中非常常见。完全静止的物体可能会更难被看到,特别是在繁忙的环境中。简单的旋转有助于物品突出,并立即传达这是某种特殊或可交互的东西。

为此,我们只需获取实体并访问其变换。
然后添加在偏航上旋转节点,该节点负责围绕物体的Y轴施加旋转。
在弧度字段中,定义您希望用作旋转速度的值。此值越高,物品旋转的速度越快。
最后,将变换连接到在偏航上旋转,并通过更新时执行该逻辑,这样物品在游戏中将持续旋转。

最后,让我们给我们的物品添加一个标签,以便稍后可以通过玩家的收集逻辑进行识别。
选择标签选项卡,创建一个新的标签叫做item,并将其分配给可收集的实体。
稍后,我们将使用此标签来检测玩家何时接触该物体。这使得识别哪些实体是可以收集的物品变得简单,而不必仅仅依赖它们的名称或外观。
使用标签是一种干净和灵活的方法,因为您的项目最终可能会有许多不同的可收集对象。只要它们都有item标签,玩家逻辑就能将它们识别为可收集物品。

此时,可收集物品已准备在场景中使用。
它具有视觉表示、材质、用于检测的幽灵碰撞、一个使其旋转的逻辑砖,以及一个item标签,这将允许玩家稍后识别它。