UE GamePlay框架(二) GameMode、GameState

一、AGameMode
在这里插入图片描述
1、AGameMode实现接口
(1)Class登记
(2) 游戏内实体的Spawn
(3) 游戏的进度
(4)Level的切换
(5)多人游戏的步调同步
(6)AGameModeBase->针对单机,AGameMode->针对多人联机
2、哪些逻辑应该写在GameMode里?哪些应该写在Level Blueprint里?
(1)概念上,Level是表示,World是逻辑,LevelScriptActor应该专注于本Level的表示逻辑,GameMode应该专注于玩法
(2)组合上,GameMode是可以应用在不同的Level的,所以通用的玩法应该放在GameMode里。
(3)GameMode只在Server存在(单机游戏也是Server),对于已经连接上Server的Client来说,因为游戏的状态都是由Sever决定的,Client只是负责展示,所以Client上是没有GameMode的,但是有LevelScriptActor,所以GameMode里不要写Client特定相关的逻辑。
跟下层的PlayerController比较,GameMode关心的是构建一个游戏本身的玩法,PlayerController关心的玩家的行为。
(4)跟上层的GameInstance比较,GameInstance关注的是更高层的不同World之间的逻辑。把不同GameMode之间协调的工作交给GameInstance,而GameMode只专注自己的玩法世界。
二、AGameState

在这里插入图片描述
1、PlayerState是玩家自己的游戏数据,GameInstance是程序运行的全局数据
2、GameState在网络环境里可以Replicated到多个Client上面去
3、AGameStateBase->针对单机,AGameState->针对多人联机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值