UE4 GamePlay架构 (GameMode,GameState) 学习笔记

GameMode控制着

1、Class登记

        GameMode里登记了游戏里基本需要的信息

2、游戏内实体的Spawn

        游戏的加载释放过程中产生的实体都是GameMode控制,包括Pawn,PlayerController,AIController等。

3、控制游戏的进度

        GameMode里面又SetPause、ReStartPlayer等函数控制游戏暂停和重启

4、Level的切换

        GameMode也决定了杠进入一场游戏是否播放开场动画等等

5、多人游戏的步调同步

        在多人游戏时,我们常常需要等所有加入的玩家连上后,载入地图完毕后才能一起开始逻辑,UE提供了一个MatchState来指定一场游戏的运行状态,意义就是用一个状态机来标记开始和结束的状态。

一个Level对应一个GameMode实例

因此当有多个Level的时候,一定是PersistentLevel和多个StreamingLevel,这时就算它们配置了不同的GameModeClass,UE也只会为第一次创建World时加载PersistentLevel的时候创建GameMode,在后续的LoadStreamingLevel时候,并不会再动态创建出别的GameMode,所以GameMode从始至终只有一个,PersistentLevel的那个。

Level迁移时GameMode是否保持一致?

        无论travelling采用哪种方式,当前的World都会被释放掉,然后加载创建新的World时

                分两种情况:
不开启bUseSeamlessTravel,那么在travelling的时候(ServerTravel或ClientTravel),当前的World会被释放,所以当前的GameMode就被释放掉。新的World加载,就会根据新的GameModeClass创建新的GameMode。所以这时是不同的。
开启bUseSeamlessTravel,travelling时,当前World的GameMode会调用GetSeamlessTravelActorList:

哪些逻辑该写在GameMode里,哪些逻辑该写在Level Blueprint里?

        GameMode更注重与逻辑的实现,比如游戏玩法(胜利条件,怪物刷新等),而Level Blueprint更注重本Level的表示逻辑,比如Level内某些Actor的运动轨迹,或者某一个区域的重力,或者触发一段特效或动画。

        同Controller和Pawn一样的道理,一个GamePlay也可以应用到不同的Level中,所以通用的玩法是可以写在GamePlay里面的。

        可以把GameMode之间协调工作交给GameInstance


PlayerState是用来保存玩家的游戏数据,那么同样的,对于一场游戏,也需要一个GameState来保存当前游戏的状态数据,跟PlayerState一样GameState也是从AInfo里继承出来的。

UE4中的Gameplay框架是一个强大的工具集,用于开发和实现游戏玩法和用户交互。该框架提供了许多功能和组件,以帮助游戏开发者快速构建出丰富、流畅的游戏体验。 UE4Gameplay框架主要由以下几个方面组成: 1.输入系统:该系统可以处理各种输入设备的操作,如鼠标、键盘和游戏手柄。开发者可以轻松地设置和管理输入映射和按键绑定。此外,还提供了鼠标和手柄的即时响应和移动方向控制功能,使玩家能够自由操作游戏中的角色。 2.角色控制器:角色控制器是游戏玩家在游戏中扮演的角色,他们的控制是通过输入系统和蓝图来实现的。游戏玩家可以移动角色、执行动作、攻击敌人等。角色还可以通过动画系统实现自然的运动和交互。 3.人工智能:UE4Gameplay框架提供了内置的人工智能系统,可以对NPC和敌人进行编程控制。开发者可以设置敌人的行为模式、路径寻找和攻击策略,让游戏中的敌人具有更真实和智能的表现。 4.物理模拟:UE4Gameplay框架使用了物理引擎来实现真实的物理模拟效果,比如碰撞、重力和刚体运动等。这使开发者能够创建更真实和具有交互性的游戏世界,使玩家可以与环境进行互动。 总之,UE4Gameplay框架提供了强大而灵活的工具,帮助开发者轻松地构建出丰富多样的游戏玩法和用户交互。无论是开发动作冒险游戏、射击游戏还是角色扮演游戏,该框架都能满足开发者的需求,并带来令人惊叹的游戏体验。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值