Pawn(虚幻引擎)
核心定义
Pawn = 可被控制器操控、能在场景里物理存在的游戏实体基类
凡是可以被玩家/AI控制、占据空间、拥有碰撞、能移动的物体,都继承自
APawn。
类继承层级
|
|
Pawn vs Character
| 类型 | 适用场景 | 自带组件 |
|---|---|---|
| APawn | 飞船、汽车、坦克、炮台、弹球等非人形 | 基础移动组件,没有人形骨骼、胶囊碰撞、动画蓝图 |
| ACharacter | 人形玩家角色、人形NPC | 胶囊碰撞体、骨骼网格体、CharacterMovement(走路、跳跃、下蹲、爬坡)、动画实例 |
Character 是专门给人形角色定制的 Pawn;非人形可操控物体直接用 Pawn。
常用功能
GetController():获取当前操控它的控制器Possess():控制器抢占操控这个PawnUnPossess():放弃操控SetActorLocation()/AddMovementInput:移动自身- 可绑定摄像机,作为第一/第三人称载体
实战踩坑:Get Owner vs Get Owning Actor
场景:蓝图中获取某个 Actor 的"拥有者"时,两个函数名都有"Owner",容易混淆。
| 函数 | 返回的是 | 说明 |
|---|---|---|
| Try Get Pawn Owner | Pawn(或 None) | 只有当 Owner 是 Pawn 类型时才有值。若父类是 Actor 而非 Pawn,返回 None |
| Get Owning Actor | Actor | 返回该组件所属的 Actor。需要再调用 Get Owner 才能拿到真正的拥有者 |
实际链路:
|
|

关键理解:两个函数都带"Owner"字样,但含义不同:
Get Owning Actor= “这个组件属于哪个 Actor”(向上找组件归属)Get Owner= “这个 Actor 的拥有者是谁”(Actor 之间的 Owner 关系)