目录
APlayerController & AAIController
-
UObject
-
UE一切对象的起点,提供反射、序列化等机制
-
-
Actor与组件
-
actor是最小可互动单位的抽象,可以派生出很多子类,是组件的容器
-
组件是一种对通用能力的抽象,更偏向于引擎
-
一种简单区别方法,跨关卡通用的封装成actor,可以跨游戏通用的封装成组件
-
Actor不一定可见,如AInfo继承自Actor,再派生出WorldSettings等Actor
-
-
APawn&Acharacter
-
可被控制的肉体,不应包含输入操作
-
-
AController & APlayerState
-
AController肉体的灵魂,用于控制其他actor的一种actor,封装控制逻辑
-
APlayerState玩家肉体的状态,封装与玩家数据相关的获取和设置逻辑,抽离开是便于联机时同步到客户端
-
-
APlayerController & AAIController
-
APlayerController跟玩家沟通的渠道,控制逻辑独立于pawn,同一个APlayerController可以控制多个肉体
-
AAIController控制非玩家控制的pawn,使用行为树组织控制逻辑,使用黑板共享数据,使用EQS实现AI感知
-
-
ULevel关卡 & UWorld
-
ULevel: Actor的集合,World的板块,对应UMap
-
UWorld: ULevel的集合,运行时Actor真正的集合,关卡概念和游戏场景真正的对象
-
不要在关卡蓝图写太多逻辑,关卡蓝图只是对场景中actor呈现方式的组织,如地编等工作
-
-
UGameMode & UGameState
-
UGameMode世界层级的规则和逻辑
-
UGameState世界层级的状态数据,可以同步到客户端
-
UGameState在游戏初始化时,通常用数据配置表来读取
-
-
UGameInstance
-
游戏全局的实例,World外围管理对象
-
主要实现跨关卡的逻辑
-
-
USaveGame
-
游戏存档数据,用于玩家数据和世界数据的回滚(类似事务性)
-
常和AGameState,APlayerState保持一致性,阶段性的保存数据到USaveGame,读档时拷贝数据回APlayerState更新玩家数据(背包,经验,血量等),拷贝回GameState更新世界状态(关卡场景中的actor状态等)
-
-
USubsystem
-
游戏业务逻辑的组件(actor中的组件偏向引擎层面的通用能力,USubsystem直接封装业务逻辑)
-
5个生命周期的粒度控制
-
自动生成对象并托管生命周期
-
替代Manager类
-
-
UDamage
-
Applay Damage
-
Event_AnyDamage
-