Pawn
**Pawn**类是可由玩家或 AI 控制的所有 Actors 的基础类。Pawn 是玩家或 AI 实体在世界中的物理象征。 这不仅意味着 Pawn 决定玩家或 AI 实体的外表,而且决定其在冲突和其它物理互动方面 如何与世界交互。由于某些类型的游戏可能在游戏中没有可见的玩家网格或形象,这在某些情况下可能会令人困惑。无论如何,Pawn 仍 代表玩家或实体在游戏中的物理位置、转动等。Character 是一种特殊类型的能走动的 Pawn。
默认情况下,控制器和 Pawn 之间是一对一的关系;意思是,每个控制器在任何特定时间只控制一个 Pawn。此外,在游戏中生成的 Pawn
不被控制器自动控制。
在 Blueprints 中,使用**SetActorLocation**是增加 Pawn 派生类的运动的最佳方式。用**SetActorLocation**,你可以决定要时空转移至或迅速前往某个位置。 迅速前往时,你的 Pawn 会沿某个方向移动,如果撞到东西就会停下来。
默认 Pawn
尽管 Pawn 类只提供创建玩家或 AI 实体在世界中的物理象征的基础,但_DefaultPawn_子类附带一些额外的组件和功能。
DefaultPawn 类包含本地 DefaultPawnMovementComponent、球形 CollisionComponent 和 StaticMeshComponent。为了控制 DefaultPawnMovementComponent 以及摄像机, DefaultPawn 类中也有用来添加默认运动约束的 Boolean,且被默认设置为_true_。
DefaultPawnMovementComponent
DefaultPawnMovementComponent 的运动风格被设置为无重力飞行风格。除通常的 MovementComponent 变量外,它还包括“MaxSpeed”、“Acceleration”和“Deceleration”浮点值。这 三个变量也可在 DefaultPawn 派生 Blueprints 中访问。
观众 Pawn
_SpectatorPawn_类是 DefaultPawn 的子类。GameMode中,可将不同的类指定为 Pawn 和 SpectatorPawn 的默认值,而该类提供非常适合 观看功能的简单框架。像 DefaultPawn 一样,尽管 StaticMeshComponent 不是由于执行“.DoNotCreateDefaultSubobject(Super::MeshComponentName)”而创建,但它有球形 CollisionComponent。 SpectatorPawn 类的运动由 SpectatorPawnMovementComponent 处理;无重力飞行行为与 DefaultPawnMovementComponent 中的相同,并添加了在必要时 处理或忽略时间膨胀的代码。