快捷搜索: 王者荣耀 脱发

UE4 GamePlay架构总结 学习笔记

游戏世界,万物皆Actor,Actor再通过Component组装Actor所拥有的功能,Actor再通过UChildActorComponent实现Actor之间的父子嵌套。

Actor又通过UChildActorComponent实现Actor之间的父子嵌套

众多的Actor由组装成了Level,Level就是用于装载Actor的容器

一个个Level又组成一个World

而当World进行切换时,就用WorldContext来保存切换的过程信息

玩家在切换PersistentWorld的时候,实际上就相当于切换了一个World

整个游戏唯一的GameInstance由Engine对象管理着

GameInstance不光保存World同时要保存以各种方式进入World中开始游戏的Player

Player有着LocalPlayer用于存储本地玩家,也有NetConnection当作远端的连接

玩家利用Player对象接入World之后,就可以开始控制Pawn和PlayerController的生成,有了附身的对象和摄像的眼睛。最后在Engine的Tick心跳脉搏驱动下开始一帧帧的逻辑更新和渲染。

AController是用来控制APawn的一个特殊的AActor

AController同时也根据用法和使用对象的不同分化出:玩家本地的控制器PlayerController,和AI的控制器AIController,而数据配套就是PlayerState

在Level的切换,GameMode也负责协调Actor的迁移。

World构建好了,该玩家进来了,但游戏的方式多样,玩家的接入方式也多样,抽象出了UPlayer实体来实际上控制游戏中的玩家PlayerController的生成数量和方式

所有的数据和逻辑汇集到一起就形成了,UGameInstance对象,代表着游戏的开始和结束。同时为了方便开发者进行玩家存档,提供USaveGame进行全局数据的配套

经验分享 程序员 微信小程序 职场和发展