在为 Actor 添加组件时,你就是在拼凑构成 Actor 的零碎部分。 例如,汽车上的车轮、方向盘以及车身和车灯等都可以看作组件,而汽车本身就是 Actor。
添加了构成 Actor 的组件后,请注意,即使不编写 蓝图 脚本(或 C++ 代码)来设置汽车的功能,你也可以将汽车 Actor 放置在关卡中(在真实世界中,汽车本身就是一个物体,无需驾驶员告诉汽车该做什么)。 “油门踏板”相当于一个组件,你通过脚本或代码来指定踏板是否踩下,从而为汽车编写加速逻辑。 可以此种方式访问每个组件(打开车灯、按喇叭、开启收音机、转动方向盘等)
组件实例化
与普通子对象的默认行为相反,作为Actor内部的子对象,组件都是实例化的。也就是说,每个特定类的 Actor 实例都会获得特定的组件实例。 如果说得形象一点,想象一下上文提到的汽车。汽车类用组件来表示汽车车轮。 汽车需要创建 4 个车轮组件作为子对象,并将其赋值给 “车轮” 数组。创建新的汽车实例时,会为该汽车专门创建新的车轮组件实例。 如果不这么做,那么当某辆车在游戏中开动时,所有汽车的车轮都会转动。这显然不对。通过默认组件实例化,我们简化了为 Actor 快速添加对应子对象的过程。
没有组件实例化,所有组件变量都需要使用 Instanced
属性说明符 来声明。
组件类型
Actor 可以添加多种组件,请参见以下链接以了解详细信息:
你也可参见 虚幻引擎 API 参考 中的 组件可视化器 了解组件的详细信息。