入门、进阶、精通,是学习所有东西必经阶段,之前的一些回答已经讲得很详细了,什么官网教程,各种Manual,书籍,在线教程等等,我也不重复了。

我只是想歪个楼,Unity本身并不是一种体系(或者叫系统学问),他只是计算机图形学+游戏开发+各种其他系统的一种表现,题主的愿望如果是想学习游戏开发,unity是一个很好的入手工具,但它背后必然蕴含这一些通用系统知识。就像圆珠笔、毛笔、纸张等等只是写作的工具,你如果想学会写作,那么文字、修辞、表达等等相关的系统知识不可少之。说白了,你有没有想过,如果不用unity,你如何制作游戏?

打开网易新闻 查看精彩图片

另外,我本身在使用unity的过程中,遇到过大量的tricks,比如什么“要把这个gameObject放到另外一个gameObject下面”,“UI叠加的时候需要使用一个canvas”等等,这些所谓的知识并非长久,unity在数年的迭代过程中也早已变更很多,早期有很多tricks在后来都废掉了,很多机制也被替换了(光照系统大换过一次,渲染模型也变过,assetbundle更是变过好几次),但是他背后的图形学、编程效率、构架等等不会变更,其实说白了,就是unity迭代过快,没有的东西先加上,后面很多使用者反馈说不好用,或者使用插件做一些东西,在之后的版本中又被官方自己解决或更改了,那么之前的那些tricks迅速不灵了。

打开网易新闻 查看精彩图片

个人觉得就Unity学习,掌握几个很重要的点,

1.基本编程语言功底,C#、js、数据结构、算法

2.Unity资源流原理(Unity如何处理资源关系的,mate、 library、prefab之间的关系 dll如何被引用等等),基于这些关系去构建自己的资源管理结构。

3.做好对象生命周期管理(利于管理内存、利于更加灵活结构化)

4.善用unity文档和answer

打开网易新闻 查看精彩图片

这几点处理好了就足够用了,然后我们关注的具体实现,网络上很多现成的解决方案,处理这些解决方案,这些解决方案不要直接拿来用,看看人家的思路明白其作用用自己的理解去实现自己的解决方案。TG:li9047