蓝鸥科技unity3d培训分享一位前辈学习unity的经历 unity3d培训是很多朋友比较关注的内容,更是游戏开发者感兴趣的内容。最近不少朋友和我交流Unity的问题。但几乎最后都被我忽略了,我最后给的意见是,不要急着做功能,先把基础知识学好。
不是我看不起初学的人,因为我也不是读相关专业的人,也是从业余自学而来,能明白初学者的迷茫。但正是这样,我才给出了这样的建议。
以下是我对我自己学习Unity的一些经历和一些看法。
在多年之前,我是一名美工,不过读书的时候曾经学过一些基础的程序知识。在那时候,我接触了Unity2.6的版本。我用了一周时间,学会了它的基础用法,然后制作出了一些所谓的游戏。
在这个阶段,Unity给人的感觉就是:你可以很不专业,但由于它的足够强大,而让不专业的你做出很多看似专业的效果。
通常处于这个阶段的人,会有一种莫名的自我满足感和自信,觉得自己无所不能,拿着Unity这样的神器做什么游戏或者应用都应该能胜任。正由于Unity的这种简单易用的特性,所以使用者会毫不犹豫的开始设计自己的游戏,每一个功能的去想办法实现,拼凑起来,就觉得能做出一个完整的游戏了。
我处于这个阶段的时候,心态也是一样的,其实对于编程可谓一窍不通,不懂面向对象,不懂设计模式,只会写一些面向过程的代码,勉强的把功能实现了,堆砌起来,居然也能做出不少的游戏,心里面挺满足的。而正好这个时候,国内使用Unity的人少,所以我就毅然的转行不当美工了,而做了一名所谓的程序员。
不过当真正面对项目的时候,我就进入了另外一个阶段了。由于程序的知识实在缺乏,很多功能写得过于繁琐(曾经写过一个类几千行……),或者难以实现。所以到了用到一些无能为力的功能时,我就只能从网上抄一些代码来用。
这个阶段一般来说可以算是从入门的一步到稍微深入了。现在估计很多人是处于这个阶段的。这个阶段的人做项目,都是把功能划分成一个个模块,然后逐个模块去网上搜索实现的功能,或者直接问别人能不能共享个代码,然后直接拿到项目里面用。于是一个项目下来,东拼西凑的东西很多,说不定功能都实现了,但实际上项目的可控性是非常差的。
如果能从这个阶段醒悟过来,那么你可能可以再进一步。但如果在这个阶段迷失了,我觉得你可以在做几个项目之后,就可以转行放弃Unity了。我是在做了2个公司之后,才醒悟了过来,一个公司是做虚拟现实的,一个公司是做手机游戏的。
当我醒悟过来之后,终于发现了一个问题。其实Unity只是一个工具,我只是会用这个工具而已。就好比Unity是一支笔,我只是会操作这支笔来写字而已,至于字写得好不好看,或者文章的内容是否丰富而吸引人,其实和这支笔本身是否好用没有太大关系的,而是关乎我自己的自身修养和基础知识的。
记得曾经听过这么一句话,当你懂得越多的时候,你发现你不懂的东西越多。这时候的我,发现自己真的什么都不会。
我那时候会的东西其实很少,会建3D模型,会画贴图,会调动作,会后期合成。都是一些美术方面的技能。但对于3D引擎的知识非常缺乏,比如模型的解析和显示原理,比如空间坐标的计算,比如渲染管线的知识和着色器的编写方式。在程序方面,连最基础的面向对象都不懂,更别说设计个什么框架出来了。
于是我开始真正的学习了,但学习的不是Unity本身,而是这些基础的知识。
在3D引擎知识方面,我学习了模型的解析,会从3DMax里面导出自己需要的三维数据,然后在没有三维引擎的帮助下把三维模型显示出来。我学习了骨骼动画的原理,同样在没有三维引擎的情况下做出了骨骼动画的播放。我学了着色器的编写方法,懂得了一些通用的渲染管线的知识。
在程序方面,我学习了面向对象,知道了抽象、继承、多态,知道了多种设计模式,知道了性能的优化点,也尝试写了一些框架方面的东西。
在这个时候,我才稍微的又找回了一点自信,觉得自己还算是专业的,而不是靠蒙骗而度日的。我最后得到的结论是,只要你懂得基础知识,不管你用的是Unity还是其他的引擎,你一样会用的。所以现在很多人问我问题,最后我都只能这样回答他们。
我看到了很多初学者似乎都很难明白这个道理,我看到最多的情况是,很多人拿起Unity就盲目的去做功能,做所谓的游戏之类。然后一天可能遇到10几个不懂的地方,然后逐个逐个的去问别人实现的方法。甚至一些过于自信的人,还曾经在我这里评论,他并不觉得用Unity需要会什么复杂框架,只需要功能能实现就可以了。其实每当这个时候,我都非常的无奈的,因为又一个人可能走上了弯路了。而我有可能比你们每一个人都忙(我已经很久没有试过睡安稳觉了,白天在公司上班,晚上加班,回家还要陪小孩睡觉,每2个小时左右就醒,第二天仍然按时上班……),所以我不可能每个人每个基础知识的去聊,只能建议大家去看基础知识了。
本文转自蓝鸥unity3d培训