19. APlayerController
定义和功能
-
定义:
APlayerController
是Unreal Engine中用于处理玩家输入并将其转化为游戏世界中的动作的类。它是连接玩家和游戏角色(通常是Pawn
)之间的桥梁,负责接收输入并通过Possess
方法控制Pawn
。 -
功能
- 视角控制:管理玩家的摄像机视角,通过
PlayerCameraManager
来切换和控制摄像机。 - 输入处理:构建输入堆栈来管理和路由来自玩家的输入命令。
- UI显示:管理和显示用户界面,如HUD。
- UPlayer关联:可以是本地的LocalPlayer,或网络控制UNetConnection。PlayerController只有在SetPlayer之后,才可以开始正常工作。
- Level管理:在网络游戏中处理Level变换,确保玩家的连贯性。
- 语音通信:在网络游戏中处理玩家之间的语音通信。
- 视角控制:管理玩家的摄像机视角,通过
设计理念
- 玩家直接控制:
APlayerController
直接反映玩家的意图,所有的跟该玩家相关的操作和接口都交给它完成。 - 灵活的视角管理:通过与
PlayerCameraManager
的紧密合作,提供了灵活的视角控制,使玩家可以从最佳角度体验游戏。 - 高度可配置的输入系统:允许开发者自定义输入配置,使得控制更加符合游戏的具体需求。
相关类关系
- 与
Pawn
的关系:通过Possess
方法控制一个Pawn
,成为玩家在游戏世界中的代表。 - 与
PlayerCameraManager
的关系:管理玩家的视角,通过摄像机类实现视角的切换和控制。 - 与
HUD
的关系:用于在屏幕上显示游戏信息和界面,与用户交互。
游戏场景例子
- 单机FPS游戏:玩家通过键盘和鼠标控制角色移动和射击,
APlayerController
处理输入并通过Possess
的Pawn
执行动作。 - 多人在线游戏:每个玩家都由一个
APlayerController
管理,控制各自的角色,并通过网络同步各自的状态和动作。
20. AAIController
定义和功能
- 定义:
AAIController
是Unreal Engine中用于控制AI角色的类,它允许非玩家角色根据预设的逻辑自动行动。 - 功能
- 导航和移动:使用导航系统自动控制AI角色的移动。
- 行为树和黑板:运行AI的行为逻辑,存储和管理AI的状态数据。
- Task系统:让AI去完成一些任务,也是实现GameplayAbilities系统的一个接口。
设计理念
- 自主决策能力:让AI角色能够根据游戏环境和玩家行为做出响应。
- 行为树系统:利用行为树来组织复杂的AI逻辑,提供可视化的逻辑编辑。
相关类关系
- 与
Pawn
的关系:控制一个或多个Pawn
,执行AI逻辑。 - 与
NavigationSystem
的关系:依赖导航系统来实现AI的路径规划和移动。
游戏场景例子
- 策略游戏中的AI敌人:AI使用
AAIController
来决定其行动,如攻击玩家或移动到战略位置。 - 角色扮演游戏中的NPC:AI控制的NPC根据玩家的行动和游戏内的其他事件做出反应,提供任务或对话。