GameState用来保存玩家游戏数据,与GameMode不同GameState在客户端和服务端同时存在。GameState存在的目的是管理期望让所有玩家都需要知道的数据。例如:
-
游戏运行了多长时间(包括本地玩家加入前的运行时间)。
-
当每个玩家加入游戏时,以及该玩家的当前状态。
-
当前游戏模式的基类。
-
游戏是否已经开始。
AGameStateBase是继承宇AInfo里继承,这样在网络环境里也可以Replicated到多个Client上面去。
-
游戏运行了多长时间(包括本地玩家加入前的运行时间)。
-
当每个玩家加入游戏时,以及该玩家的当前状态。
-
当前游戏模式的基类。
-
游戏是否已经开始。
其部分默认功能包括
GetServerWorldTimeSeconds |
这是 UWorld 函数 GetTimeSeconds 的服务器版本,将在客户端和服务器上同步,因此该时间可用于复制,十分可靠。 |
PlayerArray |
这是所有 APlayerState 对象的阵列,对游戏中所有玩家执行操作时十分实用。 |
HasBegunPlay |
如 BeginPlay 函数在游戏中的 actor 上调用则返回true。 |