UE4 GamePlay架构学习篇[通俗易懂]

UE4 GamePlay架构学习篇[通俗易懂]附带上激活成功教程版安装说明:1.安装jdk。百度搜索jdk,如果安装了则跳过。2.解压下载的.zip文件。双击打开。syntevo_keygen.jar文件。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本帖为原创文章,转载请注明出处。

现在UE4刚免费不久,网上的资料还很少,有一些UE3的大佬出了一些学习的帖子。通过参考前辈的文章+通过查阅官方文档和官方的模板案例测试得出如下结论,供学习参考:

UE4 GamePlay架构学习篇[通俗易懂]

1>UGameInstance

游戏实例,全局只存在一份,我们自己继承一下,实现Init()和ShutDown()方法。比如不会被GC的数据可以放到这里,比如UE4的本地数据库(存档USaveGame)(因为Level切换的时候之前关卡中的数据都会被GC,代码中存的关卡的数据也就没了)。

1.1>Init():写我们自己的初始化代码,可作为程序的入口

1.2>ShutDown():写我们自己的结束程序代码,比如释放SDK资源等

2>AGameMode

游戏模式,其实是一个服务端(Server)。

2.1>服务端;游戏模式;客户端是不允许访问的。UGameEngine::LoadMap()。

2.2>GameMode在哪里初始化的?GameInstance里面的SetGameMode()

3>AGameState

游戏状态,主要用途是全局管理游戏状态和游戏数据,客户端也存在一份。客户端服务端都可以访问。

4>AGameSession

游戏会话:存在于服务端的,客户端没有。

功能:1>可以进行踢出玩家 2>玩家加入退出游戏监听 3>重新开始对局 4>获取当前对局的人数 5>获取房间的状态

5>AController

控制器,一个很重要的概念,角色有控制器,人也有控制器。在这里记录一个UE4里面的Owner还有Instigator的概念。

设置拥有者
    SetOwner(InOwner);
设置谁导致的这个Actor的生成。这块比较绕。这样想就明白了了
我觉得UE4设置InOwner,InInstigator就是在射击游戏的原型上衍生出来的。
比如人拿枪,人开枪,枪发射子弹。假如子弹就是这个被Spawn的Actor
那么InOwner是谁?是抢,子弹属于枪的
那么InInstigator是谁?是人,人开枪才有了子弹。
当然怎么设置取决于我们
   SetInstigator(InInstigator);

6>AAIController::public AController +CharacterMakeNoise() +   UAIPerceptionComponent(AI监听组件,可有视力和听力)

AI的控制器,首先这个是客户端服务器都有的。

AI有自己的独立控制器,在Pawn上面进行设置即可。可在蓝图中选择,在这里还会衍生出AITree等一系列的AI模块的东西。

7>APlayerController::public AController

玩家控制器,首先这个是客户端服务器都有的。

1>一般我们在这里面处理监听玩家的输入,当然也可以在Characer上面做,因为Pawn和Controller是一个相互持有的关系,Character又继承自Pawn。
2>当前不止第一条,还有一些射线检测;
3>GM的命令行
4>客户端的HUD和视口GameViewPortClient
5>PlayerCameraManager相机管理 用于播放相机动画, 以及ShakeCamera 屏幕震动效果等
6>作弊的管理
7>网络连接
8>旁观者
9>替换角色的功能,比如运行中我们要切换门派,将整个Pawn给换掉
10>…………功能还有很多

8>APlayerState

顾名思义:角色的数据类,当然也可以自己写。将HP、MP、攻击力、Buff等放这。

9>APawn

角色基础类,没有聚合移动组件,和Controller是一个互相持有的关系

10>ACharacter::public APawn

角色类,默认聚合了CharacterMovement组件,可用物理真实去移动等。Jump,Lunch等功能。

11>UCharacterMovementComponent

角色移动组件,最终要的是里面分了几种模式,也支持我们自己扩展,WalkMode、Fall、Fly、Swim等,摩擦力这些都在这。

12>AHUD

角色的2D视口绘制类,就是UI类,比如绘制一个FPS游戏的准心

13>UMG

可视化编辑的UI系统,就像cocos2d里面的cocosstudio编辑UI的界面的工具。里面封装了Slate。

14>UMG->Slate

它是UMG的底层实现,也是UE4编辑器界面使用的GUI的架构,也就是说UE4的编辑器界面就是用Slate写的。

15>UGameViewportClient

游戏视口管理,比如失去焦点(我们鼠标点中了视口的外面,点到了我们桌面),返回焦点(处于失去焦点状态并且鼠标点击中了我们的程序视口内)。

16>UEditorViewportClient

编辑器的视口管理

17>AGameUserSetting

游戏的默认存档设置,比如全局的抗锯齿等级等。

18>USaveGame

UE4提供的一套存档的系统,单机游戏用着不错,也可作为本地存储一些数据载体。

19>AWorldSettings

顾名思义:一个世界的设置,一个地图的设置,一个UMap的设置。里面有KillZ等信息,一直掉落,掉到什么KillZ的负数绝对值的时候角色就死亡了,被销毁了,当然我们是可以监听的。等等的功能。

UE4太牛了………………自学过程中。我只是看了个大概,很多功能还没研究完。天道酬勤,共勉

谢谢

简单画了Visio的图

UE4 GamePlay架构学习篇[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185953.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021计算机三级数据库大题总结

    2021计算机三级数据库大题总结第一套大题为了方便之后的大题都放在这里38.设计ER图,并把ER图转换为关系模式,并指出主码。相关参考资料:(一)什么是ER图?(1)概念ER图:实体关系图,简记E-R图,是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式(2)要素3要素:实体、属性和关系(3)表示 实体型:用矩形表示,矩形框内写明实体名;  属性:用椭圆形或圆角矩形表示,与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;  联系:用菱形表示,菱形框内写明

    2022年6月22日
    37
  • tomcat 设置允许跨域访问「建议收藏」

    tomcat 设置允许跨域访问「建议收藏」既然想到使用tomcat进行跨域的设置,而不使用在项目中设置header来解决,说明你也是tomcat下的资源需要做跨域处理吧?这也是一个统一的允许跨域设置,tomcat下的所有请求都将放开,请注意。具体步骤:1.首先找到你的tomcat所在路径,并在conf文件夹下找到web.xml2.打开该文件,在以下位置加上这段:<filter><…

    2022年9月30日
    1
  • python json转字符串_在python中将json转换为字符串

    python json转字符串_在python中将json转换为字符串在python中将json转换为字符串

    2025年6月3日
    0
  • mysql练习题及答案_mysql练习题及答案.doc

    mysql练习题及答案_mysql练习题及答案.docmysql练习题及答案mysql练习题及答案mysql查询语句练习题Sutdent表的定义字段名字段描述数据类型主键外键非空唯一自增Id学号INT10是否是是是Name姓名VARCHAR20否否是否否Sex性别VARCHAR4否否否否否Birth出生年份YEAR否…

    2022年9月18日
    0
  • 《Android应用开发揭秘》读书笔记——android学习目录

    《Android应用开发揭秘》读书笔记——android学习目录声明:学习的书籍《Android应用开发揭秘》,这里记录学习该书籍的日志,引用的相关代码与总结描述,没有商业的用途,完全是自我学习的一个记录。开发环境JDK6.0+Eclipse3.6+androidsdk2.2,因为自己手机就是2.2版本的,刚开始学没选最新版本。链接目录如下:【android基础学习之一】——事件的监听与触发【android基础学习之二】——基础控件ListVie…

    2022年5月6日
    38
  • [转载]Asp.net MVC 2 + Castle + NHibernate 项目实战(1)

    [转载]Asp.net MVC 2 + Castle + NHibernate 项目实战(1)

    2021年8月15日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号