UE5GamePlay框架|天天快讯

时间:2023-06-23 18:56:52 来源: 哔哩哔哩


(资料图片仅供参考)

任何一部游戏都包含游戏规则、玩家控制的对象、UI界面、游戏游玩相关信息(包含:计分器、任务完成进度、玩家排行榜等)、玩家相关信息(昵称、当前血量、攻击力、金钱等)。虚幻引擎的GamePlay框架为我们提供的就是这么一套“模板”。下面我将简述,我对GamePlay框架的理解。

首先,在运行游戏的时候,会生成GameInstance(游戏实例),这个游戏实例一个游戏程序有且只有一个,是唯一的。它的生命周期是游戏启动——游戏结束,针对这一特性的便利,我们可将一些全局数据存放至此,如玩家相关数值或一些你不想轻易被改变的数值。这样就可以有效避免当我们切换关卡时带来的数据初始化。当然为了预防这种问题,将关键数据存放在GameInstance只是其中办法之一,你还可以将数据序列化至本地或者上传至服务器。至此,GameInstance相关内容就先说到这里。然后我们来说GameMode。

GameMode(游戏模式)在这里定义游戏规则,在多人联机时仅存在于服务器中,GameMode中可以在这里设置以下内容:

Pawn(玩家控制对象)它相当于棋子,被玩家在游戏世界中所控制,Pawn继承至Actor,同时它的子类Character,当我们制作的游戏中控制对象的行为类似人类,如走、跑、跳、游泳,便可以使用Character,其中虚幻为我们提供了比较全面的类人行为功能。如果控制对象非类人行为可直接使用Pawn类,如蜗牛。

PlayerController(玩家控制器)有控制对象必然会有控制器,Playercontroller充当的就是棋手的角色,在这里我们可以写角色控制逻辑。其中Playercontroller是是人类玩家的控制器,AIController是为人工智能提供的控制器,当在开发AI时与其他AI功能开发组件和行为树配合使用。

HUD它当与UI管理器,任何项目都需要UI管理来处理UI的创建与关闭。

GameState(游戏状态)这里包括玩家计分器、玩家排行榜、游戏任务进度等,在多人联机中它存在于服务器和所有客户端中,保持各项数据的同步。

PlayerState(玩家状态)记录游戏中玩家的状态,如玩家昵称、等级、所处阵营,在多人联机中它存在于服务器和所有客户端中。

Spectator(旁观者)有的游戏有观战功能,如英雄联盟、反恐精英,观战的玩家操控的就是Spectator。

最后放张Gameplay各类之间的关系图

标签:

X 关闭

X 关闭