UObject
UObject是所有非Actor类的基类,几乎所有的UE对象都继承自UObject。
AActor、APawn和ACharacter
AActor
继承自UObject,并且是所有场景中对象(如角色、道具、灯光等)的基类。是场景中的实体对象,可以包含多个组件,具备生命周期和网络支持。
APawn
继承自AActor。具备可控制性,可以通过玩家输入或者AI控制器来操纵。APawn通常与AController或APlayerController关联,以实现移动和交互。与ACharacter不同之处在于不包含骨骼网格和动画系统(但是可以自己实现)。
ACharacter
继承自APawn,是一种特殊类型的APawn,包含用于行走、跳跃、游泳等的运动功能。是带有骨骼网格和动画系统的高级角色类。
包含USkeletalMeshComponent和动画蓝图,用于角色的外观和动画。
包含UCharacterMovementComponent,支持复杂的角色运动(两足生物)。
默认包含一个胶囊碰撞体,用于角色的碰撞检测。
游戏控制相关类
AGameModeBase
是游戏模式的基类,定义了游戏的规则、逻辑和行为。可以通过创建自定义的游戏模式类来拓展它,并重写其中的方法来实现特定的游戏逻辑。
AGameMode
继承自AGameModeBase,提供了更多的功能和控制权,如玩家控制、团队管理、计分系统等。似乎很少会用?
GameSession
- 玩家连接管理:负责追踪和管理玩家的连接,包括玩家的加入、离开、断开连接等。可以跟踪当前在线的玩家数量和列表;
- 会话状态管理:维护游戏会话的状态,例如游戏是否正在运行、游戏是否已经结束等。提供了方法来开始、结束和重启游戏会话;
- 权限和权限控制:可以处理玩家的权限和访问控制,例如确定哪些玩家具有管理游戏会话的权限,哪些玩家可以加入游戏等;
- 跨服务器通信:在多服务器游戏环境下,可能还负责管理服务器之间的通信和状态同步;
- 游戏状态同步:在一些需要同步游戏状态的游戏中,可能会负责协调和管理游戏状态的同步。
显然这个类是服务于多人游戏的。
GameState
- 代表了整个游戏的状态,是全局性的;
- 实例通常只有一个,包含整个游戏的状态信息,如当前得分、游戏时间、游戏模式等;
- 用于跟踪和管理游戏的全局状态,而不是针对特定的玩家;
PlayerState
- 代表单个玩家的状态,是针对特定玩家的;
- 对于每个玩家在游戏中都有一个对应的PlayerState实例,用于跟踪和管理该玩家的个人信息和状态,如玩家得分、生命值、队伍信息等;
- 通常用于管理玩家与游戏之间的交互和状态,例如玩家在游戏中的表现和成就;
APlayerController
用于控制一个玩家的输入、视角和动作等。在游戏模式中,玩家控制器通常用于处理玩家的输入和操作,并与游戏世界进行交互;
AHUD
是用于显示游戏界面的基类。可以用于显示各种元素,如生命值条、得分、道具信息等。