Actor

Actor

概述

Actor是一种基本类型的对象,您可以将它放到世界中或者可以在世界中生成 它。关于Actor的一个很好的简介是“可以更新的一群组件”。实际上,Actor可以做很多 事情;请查看 Actor.h 获得其包含的所有变量及函数。

一般,不会对Actor进行垃圾回收,因为World Object存放了一个Actor引用列表。通过调用 Destroy() ,可以显式地销毁Actor。这样会从关卡中删除该Actor,并将其标记为 “待销毁”状态,这意味着直到下一次垃圾回收清理它们之前,这些Actor仍然存在。

Actor 创建

创建新的 AActor 类实例的过程称为 生成 。这个处理可以通过使用通用的 SpawnActor() 函数或者其中一个专用的模板版本来完成。

请参照 生成 Actors页面获得关于为游戏创建 AActor 类的实例的各种方法的详细信息。

组件

在某种意义上,您可以把 Actors 想象成为一个容器,它存放了特殊类型的 对象 ,称为组件 。您可以使用不同类型的组件来控制如何移动Actors 、 如何渲染Actor等。Actors 的另一个主要功能是游戏过程中在网络上 复制
属性和函数调用。

当创建组件时,组件和包含它们的Actor相关联。

几种主要类型的组件包括:

UActorComponent

这是组件基类。它可以作为Actor的一部分。如果您想更新它则可以更新它。

USceneComponent

这个组件是“物理上实际存在”的东西,因为它可以存在于世界中。SceneComponents具有变换,这意味着它们可以到处移动及和世界中的其他东西 进行交互。在附加物层次结构中,它们也可以连接到一起。

UPrimitiveComponent

这个组件不仅可以存在于世界中,同时具有某种形式的表示(比如一个网格物体或粒子系统)。很多有趣的物理和碰撞设置 都在这里处理。

Actor可以具有层次结构化的SceneComponent。每个 Actor 也具有一个 RootComponent 属性,指出了哪个组件作为该 Actor 的根组件。Actors 本身没有变换,所以它们不具有位置、旋转度、 或缩放比例信息。但是,它们可以依赖于它们组件的变换;更确切地讲,是它们的根组件。如果这个组件是 SceneComponent ,那么它将为 该 Actor 提供变换信息。否则, Actor 将没有变换。其他的附加组件的变换是相对于它们所附加到的组件的。

Actor及其层次结构的示例可能如下所示:

GoldPickup Actor 层次结构
GoldPickupExampleActor.png
  • Root(根组件) - SceneComponent: 设置Actor在世界中的基础位置的基本场景组件。

    • StaticMeshComponent(静态网格物体组件): 代表金矿石的网格物体。

      • ParticleSystemComponent(物理系统组件): 附加到金矿石上的火花粒子发射器。

      • AudioComponent(音频组件): 附加到金矿石上的金属敲击响声循环音频发射器。

      • BoxComponent(盒体组件): 碰撞盒体,用作为拾取金子时重叠事件的触发器。

Ticking(更新)

Ticking(更新) 是指在虚幻引擎中对象如何更新。所有对象每帧都可以更新,使您可以执行任何更新计算或者必要的动作。

默认情况下, Actor 都可以通过 TickActor() 函数进行更新。引擎每帧会执行一次该函数。

ActorComponents 默认也可以进行更新。请参照组件页面的更新部分获得更多信息。

复制

Replication(复制) 在多玩家网络游戏中,用于保持世界中的玩家同步。属性值和调用都可以进行复制,从而可以完全地 控制所有客户端上的游戏的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值