Unity实现:文章还在审核,还不知道链接。写在开头:之前我说,我这是想写给完全没接触过游戏开发的人看的一些文章。但是我的目标是要作出一个完整的Galgame开发框架。

那么这就很矛盾了,尽管我尽可能采用比较通俗易动的写法,但对于入门者来说,一下子就跟着去实现一个开发框架,还是显得太难了。

所以,请把本文当成一个大概领略一下游戏开发流程的快餐文,如果以这些内容作为入门的学习材料的话,恐怕是尝不出什么味道的。

在上文的立项篇中,我们大概画了这么个草稿图,那么接下来,我们来试着慢慢将其实现。在做这个框架的时候,我还是比较犹豫,到底是用Unity3d去做,还是用虚幻4去做,还是直接撸一个原生的。由于我有严重的选择困难症,所以我决定——分别都做一份。

本篇针对Unreal Engine 虚幻4游戏引擎

好的,那我们来新建一个Unreal Engine 4的工程吧。

我们发现,创建工程的时候,有两种选项:“创建蓝图工程”和“创建C++工程”。

蓝图?C++

在虚幻4中,游戏引擎为我们提供了一种不同于传统代码的新的开发方式——Blueprint蓝图。按照官方的解释,蓝图是一种可视化的开发方式,开发者可以在不用学习编程的情况下使用蓝图开发出完整的游戏。

哇!好厉害!这么一听是不是很激动?很兴奋?

然后我就来泼冷水了,想不学编程就开发游戏?不存在的(。-`ω´-)

别说是蓝图了,哪怕就算是中文,要是不会编程,也别想开发出东西来(´・ω・)ノ

实际上,蓝图和C++是相辅相成的,作为一个真正的虚幻4开发者,为了最大程度的发挥虚幻4的强大能力,肯定是两种东西都的会的。倒是有很多心智上不怎么成熟新人开发者会整天争论蓝图和C++哪个好,捧一个踩一个,很不成熟。

关于蓝图和C++的更多,可以看下这里:有木桑:为什么同样是学ue4,有的人就看不起蓝图?

C++和蓝图是可以在同一个工程下互相协助开发一个游戏的,所以创建工程的时候,选择蓝图创建和C++创建都是可以的,实际开发中不会有什么区别。我这里就直接创建蓝图工程了。

创建好工程之后,先建几个目录。

那么,在这一篇我们要实现什么呢,就实现这个幕后大boss“MainManager”吧。

在开始之前,我得再给不熟悉UE4的人科普一下UE4的世界观设定。

在虚幻4中,我们所看到的一切的世界,被称之为“Level”——关卡。

关卡是啥,我们玩游戏时候,一张地图可以是一个关卡,一段挑战也可以是一个关卡,甚至说,我们打开游戏看到的封面,也可以是一个关卡。

在上一篇中我们有这么比喻:“游戏是一场演出,观众所看到的就是演出的舞台,舞台上面的就是演员。”

这里我们继续用一下这个比喻,在虚幻4中,Level关卡就是游戏的舞台,但是虚幻4中,可能会有好多个舞台,就好像一个App会有好多个页面一样。

在舞台之上,演出的一切都叫演员,在虚幻4中它们也叫演员——Actor。

但是这里的Actor并不仅仅指人,而是广义上的演员:游戏中的天空、太阳、地面、人物、动物、风、光线,这些都叫做Actor。

(如果你刚刚看过我写的Unity篇,那么你可能会觉得:“这个和Unity的概念差不多嘛,只是换了个名字”。其实不然,对于入门者,可能会误以为差不多,但是还是有很多不同的,我们往下看。)

要注意的重点来了:请怀着面向对象的思想来继续理解以下内容。

虚幻4的一切,都是基于面向对象的,我们在场景编辑器里看到的Actor,其实就是一个个Actor实例化对象。而Actor本身,则是一个个类。

通常情况下,我们可以模糊地认为,Actor是虚幻4的世界观中最基础的一个类(虽然并不是),而在现阶段,我们也可以粗糙地认为,Level是一个特殊的Actor。

Actor蓝图类

通常情况下,蓝图类会有一个让你写程序的地方,同时Actor蓝图类会提供一个放置组件的地方。

然后再说回我们今天的主题,我们要为我们的游戏系统,制作一位大Boss,这个大Boss负责管理整个游戏的运行。

那么,我们用一个Actor蓝图类行不行呢?当然是不行的,因为Actor是演员啊,而且是只存在于某一个舞台的演员,我们说了,一个游戏可能会有很多个舞台,你舞台A上的演员是管不到舞台B的呀。

那咋办呢,其实虚幻4早就帮我们想好了,有一个东西叫GameInstance.

GameInstance

我们还是尽量避免专业的长篇大论,简单的说,gameInstance是虚幻引擎中,存在于世界之外的一个大boss。当我们切换关卡的时候,它不会被后台清理掉,所以我们直接使用就好了啊。

那么如何创建一个GameInstance呢,很简单。

第一步,右键->创建蓝图类

第二步,搜索并选择“GameInstance”

第三步,改名为“mainManager”

创建好了,然后还得设置一下。

在窗口的菜单中选择"编辑"-->“项目设置”

在“地图&模式”中,将“GameInstanceClass”设置为“mainManager”

这样一来,一个mainManager就做好了。

至于它的功能——具体怎么管理整个游戏,请看下回分解 (。・`ω´・)

(UE4篇好像讲的有点少,但是为了和Unity篇同步进度,就不多说了喵)

虚幻gameframe_【虚幻4】从0开始的Galgame开发框架(2)--MainManager相关推荐

  1. 基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计

    基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计 整个Framework结构如下: Framework.Common - 常用组件(Design By Cont ...

  2. 虚幻gameframe_UE4虚幻引擎开发手机游戏(一)

    特性集介绍•ES2•Mobile渲染器•对应OpenGLES2.0-3.x(Android平台)OpenGL ES2.0(iOS平台,支持ES3.0的IOS平台已经能够支持metal,所以直接使用me ...

  3. php设置数据库名,设置数据库表名-海豚PHP1.0.6完全开发手册-基于ThinkPHP5.0.10的快速开发框架...

    setTableName("数据库表名") 版本更新内容1.0.7支持使用模型 默认情况下,批量操作或者右侧的启用.禁用,其他快捷操作会去修改"当前模块名_当前控制器名& ...

  4. 使用SpringBoot2.0搭建企业级应用开发框架(一)基础框架生成

    前言 目标 起步 1.快速生成一个SpringBoot应用 2.导入项目 3.添加web支持 4.测试 改进 1.添加热启动 2.使用YAML非标记语言 前言 Spring一直是很火的一个开源框架,很 ...

  5. 海豚php完全开发手册,DolphinPHP1.3.0完全开发手册-基于ThinkPHP5.0.20的快速开发框架-05221135...

    目 录 序言 环境搭建 下载及安装 目录结构 快速构建器(ZBuilder) 表单(form) 设置页面标题 设置页提示信息 设置表单提交地址 隐藏按钮 添加按钮 设置按钮标题 添加表单项 复选 单选 ...

  6. 海豚php添加一行,添加表单项通用方法-海豚PHP1.0.6完全开发手册-基于ThinkPHP5.0.10的快速开发框架...

    除了可以用不同的方法来添加表单项外,DolphinPHP还为大家提供两个通用方法. 添加单个表单项 addFormItem() 比如创建一个表单,一般情况下可能这么写 return ZBuilder: ...

  7. php设置表单项,直接设置表单项-海豚PHP1.0.6完全开发手册-基于ThinkPHP5.0.10的快速开发框架...

    setFormItems("表单项数据") 与addFormItems方法作用相同,也是一次性添加多个表单项,不同之处在于,setFormItems方法需要写上参数名,但不要求顺序 ...

  8. 海豚php框架论坛,单选-海豚PHP1.0.6完全开发手册-基于ThinkPHP5.0.10的快速开发框架...

    addRadio("name值", "标题", "提示", "数据项", "默认值" [, &quo ...

  9. 海豚php分页问题,设置分页-海豚PHP1.0.6完全开发手册-基于ThinkPHP5.0.10的快速开发框架...

    setPages("分页数据") 分页功能需要用到ThinkPHP自带的paginate()方法. // 读取用户数据 $data_list = Db::name("ad ...

最新文章

  1. CAD2019软件安装教程
  2. adguard没有核心 core no_业主装修最后悔的五个地方!没有之一
  3. Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询
  4. 阿里开发者们的第13个感悟:工程师需要在循环迭代中成长
  5. C++求复数的角度_【研读.教材分析】“勾股定理”教学——基于单元整体的角度再思考...
  6. 1047 糖果 01背包扩展
  7. C++ 常用代码大全
  8. 易语言怎么给手机发短信
  9. docker搭建pgadmin并挂载
  10. Unity 正交相机和透视相机的屏幕适配
  11. 基金指数温度怎么算_基金指数温度靠谱吗【指数温度查询技巧】
  12. 如何判断如何判断RS232线是直连还是交叉连线
  13. Cadence Orcad Capture全局修改元件属性方法及技巧图文及视频演示
  14. java期末李鹤_Willike
  15. 曝光的原理 自动曝光
  16. C++ RALL机制详解
  17. Mac OS命令行清洗硬盘空间
  18. JAVA 面试知识点(个人总结)
  19. 紫外线传感器 韩国GENICOM进口 GUVA-T11GD-L 全波段检测,原厂渠道
  20. Verilgo实现的FPGA奇偶校验

热门文章

  1. 用户隐私泄露事件频发,我们的信息很难维护吗?
  2. Linux用户、群组管理
  3. DB2数据库常用工具
  4. 常用maven插件总结
  5. asp.net 利用多表联合查询进行汇总统计
  6. wordpress图片水印插件DX-Watermark
  7. 【Spring学习笔记】之【3.3 DI的深入 二】
  8. java的集合:List、Set和Map
  9. JSP 调用java 常量 枚举
  10. 十一. 图形、图像与多媒体1.绘图基础