【UE】 Pawn
14. Pawn
1. 定义与功能
Pawn
专门用于表示可以被玩家或 AI 控制的角色。UE也是从Actor中再派生出了APawn,并定义了3块基本的模板方法接口:
- 可被Controller控制
2. PhysicsCollision表示
3. MovementInput的基本响应接口
- 主要功能
- 可以被
Controller
控制,比如玩家控制器或 AI 控制器。 - 支持物理碰撞,以便在游戏世界中与其他对象互动。
- 响应移动输入,如键盘和游戏手柄指令。
- 可以被
2. 设计理念
Pawn
的设计是为了将游戏中的角色与控制逻辑(如玩家输入处理)分离。这种设计允许将角色(如玩家或 AI)的具体行为和移动控制从角色的物理表现和游戏逻辑中抽象出来。通过这种方式,可以在不改变角色外观和基本行为的情况下,灵活地改变控制逻辑。
3. 相关类关系
- Controller:控制
Pawn
的对象。Controller
可以是玩家控制器(PlayerController
)或 AI 控制器(AIController
)。 - UCharacter:
Pawn
的一个子类,专门用于处理具有复杂动画和物理行为的人形角色。
4. 游戏场景例子
- 场景一:在一个第一人称射击游戏中,玩家控制一个
Pawn
来进行射击和移动。 - 场景二:在一个策略游戏中,AI 控制多个
Pawn
单位,执行战术操作和路径寻找。
15. DefaultPawn, SpectatorPawn, Character
DefaultPawn
- 定义与功能:
DefaultPawn
是Pawn
的一个简化版本,提供了基本的移动和碰撞处理,通常用于需要简单移动和碰撞但不需要复杂行为的场景。 - 应用场景:用于那些需要基本漂浮移动功能的游戏,如简单的飞行模拟或空间探索游戏。
SpectatorPawn
- 定义与功能:
SpectatorPawn
是为了观战模式设计的Pawn
,通常用于允许玩家在游戏中自由观察而不直接参与游戏行动。 - 应用场景:多人游戏中的观战模式,允许观战者自由移动视角但不影响游戏本身。
Character
- 定义与功能:
Character
是Pawn
的另一个子类,专为处理人形角色设计,支持复杂的动画和碰撞处理。 - 应用场景:任何需要人形角色进行复杂交互的游戏,如角色扮演游戏、动作游戏等。