Cave:入门指南
Cave:入门指南
Lesson 10 of 19 • 25 XP
简体中文 (Simplified Chinese)
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
组件定义了实体可以做什么。
实体是容器。组件是附加到该容器的功能。

本课介绍你作为初学者会看到的主要组件类型。你现在不需要记住每个选项。目标是识别这种模式:
> 当实体需要某个功能时,通常会添加提供该功能的组件。
实体由组件构建
一个新的实体可以非常简单地开始。
之后,随着组件的添加,它会变得更强大:
- 添加
Transform Component,实体将在3D世界中有位置。 - 添加
Mesh Component,它可以变得可见。 - 添加
Rigid Body Component,它可以与世界发生碰撞。 - 添加
Python Component,它可以运行游戏逻辑代码。 - 添加
Logic Bricks Component,它可以运行可视化逻辑。 - 添加
Audio Player Component,它可以播放声音。
这就是常规的 Cave 工作流:通过组合组件来构建实体。
例如:
| 你想要的对象 | 可能的组件配置 |
|---|---|
| 火把 | Transform, Mesh, Light, Audio Player. |
| 门 | Transform, Mesh, Rigid Body, Logic Bricks 或 Python. |
| 玩家 | Transform, Character, Camera, Animation, Python. |
| 生命拾取物 | Transform, Mesh, Rigid Body触发器, Logic Bricks 或 Python. |
不必为每种情况寻找特殊的对象类型,而是组合你需要的对象。
核心组件
有些组件非常常见,你会经常见到它们。
| 组件 | 主要用途 |
|---|---|
| Transform Component | 存储位置、旋转和缩放。 |
| Camera Component | 定义摄像机视角。 |
Transform Component
Transform Component 存储位置、旋转和缩放。

大多数3D实体依赖它,因为大多数对象需要存在于世界中的某个位置。当你在3D视图中移动、旋转或缩放实体时,你实际上是在编辑它的变换。
很多其他组件都依赖变换:
- 光源需要位置。
- 网格需要位置。
- 摄像机需要位置。
- 3D声音源需要位置。
Camera Component
Camera Component 定义一个摄像机视角。

当你希望某实体作为游戏摄像机使用时,添加此组件。
摄像机被用于:
- 第一人称游戏。
- 第三人称游戏。
- 俯视游戏。
- 菜单。
- 剧情动画。
- 特殊视角。
场景有默认的场景摄像机,但游戏过程中的摄像机通常是带有 Camera Components 的实体。这使它们更容易移动、设置父子关系、动画、脚本控制或者在游戏中切换。
图形组件
图形组件控制玩家所看到的内容。
| 组件 | 用途 |
|---|---|
| Mesh Component | 可见的3D对象。 |
| Light Component | 局部光源。 |
| Particle Component | 由许多小片段组成的视觉效果。 |
| Animation Component | 骨骼动画播放。 |
| Animation Socket Component | 将子实体附加至动画骨骼。 |
Mesh Component
Mesh Component 使用材质渲染一个网格。

适用于:
- 道具。
- 墙壁。
- 角色。
- 门。
- 武器。
- 环境元素。
- 任何可见物体。
网格组件通常引用一个网格资源和一个材质资源。网格提供形状,材质控制表面外观。
Light Component
Light Component 为场景添加局部光源。

用于:
- 灯。
- 火把。
- 魔法光。
- 发光道具。
- 聚光灯。
场景的太阳光和环境光影响整个场景。需要在特定位置产生局部光照时,就在实体上放置光组件。
Particle Component
Particle Component 创建重复的视觉元素和效果。

用于:
- 烟雾。
- 火花。
- 灰尘。
- 火焰。
- 风。
- 碎片。
- 魔法效果。
粒子系统很有用,因为你不想让每个火花或者灰尘都是一个完整的人工放置实体。一个粒子组件可以生成并控制许多小的视觉元素。
Animation Component
Animation Component 播放骨骼动画。

它与骨架和动画资源配合,能处理播放、混合、图层以及最终动画姿态。
适用于:
- 有动画的角色。
- 有动画的生物。
- 骨骼道具。
- 使用骨骼的任意导入动画网格。
Animation Socket Component
Animation Socket Component 将子实体附加到父实体动画的特定骨骼上。

用于:
- 剑。
- 枪。
- 盾。
- 头盔。
- 背包。
- 手持道具。
这样无需每帧手动更新道具,插槽会跟随选定骨骼。
物理组件
物理组件控制碰撞和物理运动。
| 组件 | 用途 |
|---|---|
| Rigid Body Component | 碰撞、物理对象、触发器。 |
| Character Component | 玩家和NPC角色移动。 |
| Physics Constraint Component | 连接刚体。 |
Rigid Body Component
Rigid Body Component 赋予实体物理行为。

用于:
- 静态碰撞。
- 动态物体。
- 物理道具。
- 类触发器的幽灵物体。
例如,墙壁可用静态刚体防止玩家穿过,可移动箱子用动态刚体以响应物理力。
Character Component
Character Component 专为角色移动设计。

用于需要:
- 行走。
- 跳跃。
- 沿墙滑行。
- 处理斜坡。
- 像角色而非松散物理体那样移动的玩家或NPC。
通常作为可控角色的更好起点,而非普通刚体。
Physics Constraint Component
Physics Constraint Component 连接刚体。
适用于更高级物理设置,如:
- 铰链。
- 关节。
- 桥梁。
- 类布偶系统设置。
- 连接的物理对象。
你不必立即使用,但认识它有助于后续处理摆动门、悬挂物或机械装置等场景。
世界和游戏组件
有些组件能帮助构建世界或向玩家展示游戏。
| 组件 | 用途 |
|---|---|
| Terrain Component | 户外地形和雕刻地面。 |
| Audio Player Component | 声音、音乐、氛围音和3D音频。 |
| UI Element Component | 文字、按钮、面板、HUD和菜单。 |
Terrain Component
Terrain Component 创建和编辑地形。

用于户外关卡、景观、山丘、山谷、道路和大面积地面。
地形有专用编辑工具,稍后会介绍。
Audio Player Component
Audio Player Component 播放声音或音乐。
可用于:
- 音乐。
- 环境循环音。
- 音效。
- 3D定位音频。
- 界面声音。
音频也可以通过脚本、Logic Bricks、时间轴、UI回调和动画回调触发。
UI Element Component
UI Element Component 创建游戏界面元素。

用于:
- 文字。
- 按钮。
- 面板。
- 菜单。
- 生命值条。
- HUD元素。
Cave中的UI也是由实体构建,因此UI可以使用层级、组件、属性和逻辑,就像游戏其他部分一样。
逻辑组件
逻辑组件使实体有行为。
| 组件 | 用途 |
|---|---|
| Python Component | 可重用的Python游戏行为。 |
| Python Code Component | 小型内联Python行为。 |
| Logic Bricks Component | 可视化脚本图形。 |
| State Machine Component | 基于状态的行为。 |
Python Component
Python Component 将Python脚本资源附加到实体。

用于可重用的游戏逻辑,如:
- 门的行为。
- 敌人行为。
- 交互。
- 界面逻辑。
- 游戏规则。
- 自定义系统。
Python Code Component
Python Code Component 直接在组件中存储小型内联Python代码段。

用于快速测试、小型局部行为或一次性原型。
对于较大的可重用逻辑,推荐使用Python Script资源搭配Python Component。
Logic Bricks Component
Logic Bricks Component 将Logic Bricks资源附加到实体。

Logic Bricks是Cave的可视化脚本系统。通过连接节点创建行为,而不是直接编写代码。

适用于触发器、简单交互、UI行为和通过视觉方式更易理解的游戏事件。
State Machine Component
State Machine Component 将分层状态机附加到实体。

状态机适用于具有清晰状态的行为,例如:
- 待机。
- 行走。
- 追逐。
- 攻击。
- 逃跑。
- 死亡。
它们特别适合敌人、NPC 以及结构化的游戏玩法逻辑。
车辆组件
Cave 还包含与车辆相关的组件。
如果你生成了初始车辆内容,可能会看到这些。
| Component | 作用 |
|---|---|
| Vehicle Component | 将物理对象变成车辆风格的车体。 |
| Wheel Component | 定义车辆轮子的行为。 |
Vehicle Component 与刚体和轮子组件配合使用。
Wheel Component 包含与轮子相关的行为,如悬挂、转向、轮子半径以及是否为前轮。
实用组件方案
这里有一些简单的组件组合思路:
| 目标 | 组件方案 |
|---|---|
| 可见的静态道具 | Transform + Mesh。 |
| 实心墙壁 | Transform + Mesh + Rigid Body。 |
| 移动玩家 | Transform + Character + Python + Camera。 |
| 有环境效果的火炬 | Transform + Mesh + Light + Audio Player。 |
| 菜单中的按钮 | UI Element + Python 或 Logic Bricks。 |
| 敌人行为 | Character + Animation + State Machine 或 Python。 |
这些不是严格规则,仅供参考起步。
随着你构建更多对象,选择合适组件的速度会越来越快。
其他组件
Cave 还有比本课介绍的更专业的组件。
这是很正常的。
你无需在制作第一个场景前知道所有组件。现在重点掌握一个实用模式:给实体添加合适的组件,实体就会变得有用。