1.20 从0开始学习Unity游戏开发--章节总结

不知不觉系列文章已经来到了第二十篇,本篇我们将会给这一个大章节的内容做一个总结。

现代游戏引擎特点

我们在整个十多篇的文章中其实很多时候使用了编辑器上的功能,例如拖拽赋值等等,用场景编辑器来调整物体的位置,在Inspector上给物体添加功能组件。

这些都不是编写代码实现的,也就是说,相比于传统软件,现代商业游戏引擎其实更注重的是所见即所得的内容创作,如果什么事情都需要开发写代码的话,这个开发效率是极其低下的。

所以需要我们开发人员从传统软件的各种事情都需要改代码的思维跳脱出来,尽可能的提供编辑器上能直接编辑的能力,这样不仅是方便了团队中的其他成员,也方便的自己快速调整逻辑进行试错。

GameObject和组件

相比于传统的面向对象思想的编程,特别是相对于传统GUI框架里面全都是继承来扩展功能的搞法,现代游戏引擎越来越多的使用组件而非继承,其一大原因是游戏逻辑千变万化,很难一开始想清楚基类应该有哪些功能,子类又应该如何抽象,最后往往会导致基类膨胀,或者子类词不达意。

而Unity中,场景万物都是基于GameObject,而GameObject仅作为一个概念存在,我们实际的几乎所有功能都来自GameObject上的组件,当我们需要实现一个游戏逻辑的时候,出发点往往就是编写一个组件。

通过组件,我们可以接触到Unity给我们提供的各式各样的内置功能,例如内置的3D空间位置管理,内置的物理引擎,内置的渲染功能,都是来自各个组件。

数据的序列化

Unity引擎不仅提供了一套组件功能,也同样提供了序列化的能力,这使得我们编写的逻辑代码,添加的资源,都可以根据引用或者自行添加的形式,进入到游戏打包的内容中,而游戏运行时又可以根据引用,或者对应的加载API来加载到对应的资源。

通过直接以文本方式查看场景内容(其他资源也可以这样查看),我们可以更加清晰的了解到我们的数据都是以何种方式存储的,何种方式引用的,这对我们理解整个游戏内资源如何进行关联和加载的起到了非常重要的作用。

学会从想象转换成现实

其实讲的就是学会构思解决方案的过程,例如其中一篇我们讲解如何实现三人称视角,其实就是从想象中三人称应该如何让视线追随操控的玩家,然后根据想要的规则再去推导数学上的信息,最后在游戏中落地。也许三人称视角有很多标准的写法,但是游戏中很多其他的东西并没有标准,完全需要靠自己的想象,然后将想象落地。所以这也是为什么本大章其实并没有完整的教完一个游戏从头到尾的制作过程,教程故意的留下了大片的空白给大家自行想象并自行落地。

下一大章

下一个大章我们将会开始讲解Unity中的渲染,为什么这么快就开始专门讲渲染了呢?如果我只是来学习如何构建玩法,也还需要学习这一章节吗?

虽然说不同人使用Unity的目的不同,但是渲染作为最终呈现画面的手段,对所见即所得的观感影响是决定性的,并且由于这个地位的原因,游戏内大部分的组件和功能,其实最终都是为渲染服务,我们学习了各种组件的功能,其实是学习了它的源头,但是并没有学习这个源头最终呈现出来的效果是如何产生的,只有我们了解了渲染后,这块最后的拼图才能补齐,这对我们理解消化这些功能模块能起到非常关键的推送作用。

由于渲染的内容比较多,预计也会写比较久,所以关于玩法落地也就是GamePlay的进阶大章也会同时编写,相当于第二个大章和第三个大章其实不是一个先后顺序,而是并行的,当然由于精力有限,渲染的内容出的会更多,GamePlay的部分会视情况推进。

好了,让我们后续的章节再见吧。

猜你喜欢

转载自blog.csdn.net/z175269158/article/details/130326955