Language:
Page Info
Engine Version:
Share

组件

组件(Component) 是可添加到Actor的一项功能。组件不可独立存在,但在将其添加到Actor后,该Actor便可以访问并可以使用该组件所提供的功能。

例如,聚光灯组件(Spot Light Component)将允许您的Actor像聚光灯一样发光,旋转移动组件(Rotating Movement Component)将使您的Actor四处旋转,音频组件(Audio Component)将使您的Actor能够播放声音。

在 Actor 中添加组件时,您就是在拼凑构成 Actor 的零碎部分,而该 Actor 将用于关卡中。 例如,汽车上的车轮、方向盘以及车身和车灯等都可以看作组件,而汽车本身就是 Actor。

一旦添加了用于定义 Actor 的组件,请注意,即使不提供任何 Blueprint 脚本(或 C++ 代码)也可将 Actor 放置在关卡中,就像汽车一样(在真实世界中,汽车本身就是一个物体,无需驾驶员告诉汽车该做什么)。 由于“油门踏板”是一个组件,通过脚本或代码,您可表示已踩下了踏板,从而为汽车加速提供了逻辑。 可以此种方式访问每个组件(打开车灯、按喇叭、开启收音机、转动方向盘等)

Component Instancing (组件实例化)

与普通子对象的默认行为相反,创建为 Actor 内子对象的组件都进行了实例化,也就是说,特定类的每个 Actor 实例都获得了组件的独特实例。 要想有个形象一点的概念,您可以想象一下上文中提到的汽车的例子。汽车类可使用组件来表示汽车的车轮。 4 个车轮组件可以创建为类的默认属性中的子对象,并赋予“车轮”数组。在创建新的汽车实例时,将为该汽车专门创建车轮组件的新实例。 如果不是上述情况的话,当一辆车在游戏世界中移动时,所有汽车的车轮都是转动的;这明显不是我们想要的行为。默认的组件实例化简化了为 Actor 快速添加独特子对象的过程。

没有组件实例化,所有组件变量都需要使用 属性说明符 属性说明符来声明。

Component Types (组件类型)

Actor 上可添加几种不同类型的组件,请参见以下链接以了解详细信息:

您也可参见 虚幻引擎 API 参考 中的 组件 部分以了解组件的详细信息。