🧩 组件系统:赋予节点“灵魂”与“能力”
如果说节点 (Node) 是一个透明的“快递盒”,那么组件 (Component) 就是装进盒子里的“特种设备”。
一个盒子(节点)本身并不能让游戏跑起来,只有当你在盒子里装入“引擎”、“轮子”和“音箱”时,它才真正变成了一辆能跑会响的赛车。
1. 为什么要使用组件?
想象一下,如果你要创造一个“发光的会跳动的球”,你有两种做法:
- 糟糕的做法:写一个巨大的程序,强行定义这个球的所有行为。如果你下次想要一个“发光的会跳动的方块”,你得重写一遍。
- 组件化的做法(YuanEngine):
- 创建一个节点。
- 挂一个 Mesh (模型) 组件,让它看起来像个球。
- 挂一个 Light (光源) 组件,让它发光。
- 挂一个 Script (脚本) 组件,写两行代码让它跳动。
这种“搭积木”的方式让你能够像玩乐高一样,通过自由组合功能来创造复杂的物体。
2. 如何添加组件?
在 YuanEngine 编辑器中,所有的组件都在属性检查器 (Inspector) 中进行管理。
- 在层级面板 (Hierarchy) 中选中一个节点。
- 观察右侧的属性面板,拉到最底部。
- 点击 [Add Component] 按钮。
- 在弹出的菜单中选择你想要的功能(例如:Rigidbody 或 Script)。
3. 认识属性:组件能“存”什么?
每个组件都有自己的参数,你可以直接在界面上调整它们。YuanEngine 支持以下几种属性类型:
| 属性类型 (PropType) | 表现形式 | 示例 |
|---|---|---|
| Number | 数字输入框 | 速度、重力大小 |
| String | 文本框 | 玩家名称、对话内容 |
| Boolean | 开关 / 复选框 | 是否启用、是否可见 |
| Vector3 | 三维坐标 (XYZ) | 目标位置、力方向 |
| Color | 取色器 | 后面灯光的颜色 |
| Asset | 资源选择框 | 选模型文件、选贴图 |
| Node | 节点引用框 | 关联另一个节点 |
⚠️ 重点:Node 类型的交互方式
当你看到一个属性类型是 Node 时,请不要尝试手动输入一长串 ID。 你只需要从左侧的层级面板 (Hierarchy) 中,选中目标节点,直接将其拖拽到这个输入框中即可。这就像是在告诉组件:“嘿,你关注的对象是那个家伙!”
4. 常见的核心组件
虽然 YuanEngine 提供了很多功能,但你会最频繁地和这两个打交道:
🧱 刚体 (Rigidbody)
给节点穿上一层“物理马甲”。挂载它后,节点会受到重力影响,会发生碰撞,甚至会从高处掉落。如果你想做一个真实的物理世界,它是必不可少的。
📜 自定义脚本 (Script)
这是你的“终极武器”。如果现有的组件满足不了你(比如你想让节点在玩家靠近时跳舞),你就需要通过脚本组件来编写自己的逻辑。
小贴士:脚本开发涉及 API 调用,我们将在自定义脚本入门中专门详细讲解,现在你只需要知道它能实现任何你想实现的魔法。
💡 总结
- 节点 = 容器(我在哪?)
- 组件 = 功能(我是什么?我能做什么?)
- 属性 = 配置(我有多快?我是什么颜色?)
如果你玩过 Unity,你会发现这一切都非常亲切。尝试给你的节点挂一个 Rigidbody,看看它在运行模式下会不会掉下去吧!