Unity是目前最主流的游戏开发引擎,AppStore里面排名前列的游戏绝大部分都是采用Unity引擎来开发的,所以Unity引擎的前景也是非常好的,同时很多AR,VR也是基于Unity的,所以对于做游戏而言Unity引擎是非常值得学习的。如何学习Unity呢?我总结了一下学习Unity的几个阶段和要注意的事项,希望对大家有所帮助。
C# 程序设计与常用数据结构与算法
Unity使用C#来开发,所以学习Unity首先要学习C#的语法,和C#读写文件等API系统调用。学习C#语法可以找个C#的教程也可以买C#的编程语言的书,学习C#学习基本的语法,基础的数据结构,如List, Dictionary等,同时学习一些基础的OS的API操作,比如文件读写等。不用去学习windows 的一些开发和API,因为我们学习都是基于Unity来开发。学完语法以后,接下来就要学习常用的数据结构与算法,这个就是我们大学的基础科目了,数组,树,字典,链表,Hash表,图等,算法包括最短路径,动态规划,排序,模式匹配等。
Unity基础知识
学完C#以后,接下来就学习Unity编辑器操作与Unity的代码开发。Unity开发大部分都是可视化的,开发起来还是非常简单和方便的。首先学会编辑器的基本操作,摆放3D物体,添加物理刚体,添加组件,运行等基本操作。接下来从场景树节点开始,再到常用的组件实例,GameObject对象,Transform组件, MeshRenderer组件,SkinnedMeshRenderer组件, 基础材质系统(Standart Shader主要参数,Diffuse Shader主要参数)。AudioSource组件,碰撞器组件,物理刚体组件, 物理引擎, 射线检测, 事件系统,接入鼠标按键等事件,UGUI与UI组件,如Canvas组件,Sprite组件,Label组件,Button组件, 滚动列表, Mask组件等。
Unity框架设计与热更新
Unity虽然是可视化编辑,上手简单,但是正式商业项目的时候,需要考虑项目的稳定和可维护性,就不能很任性的像学基础一样,随意的挂代码,随意的绑定资源,节点到编辑器,我们需要自己来制作一个可维护的游戏开发框架, 做框架需要对游戏开发中的多岗位协作(程序,策划,美术)需求要非常清楚,同时要做好资源管理,内存控制,框架还要考虑上线以后的资源更新和逻辑更新做好版本管理和热更新等。
Unity Shader 渲染管线定制
这个相对来说就比较难了,很多大公司要做比较叼的渲染效果,需要开发人员定制特殊的Shader渲染管线来实现。比如卡通渲染,PBR渲染等, 同时不同的平台,渲染效果可能有差异,还需要我们编写代码,来抹平这种差异,同时有些低端机,我们要关掉一些消耗性能的计算,用降低效果来实现游戏的流畅度,这些需要定制渲染管线。
游戏开发中的经典的专题与算法
游戏开发中经典的一些专题与算法也是我们需要去学习的,比如游戏怪物的AI编写,我们会用到行为决策树,地图编辑器, 寻路导航, Socket网络编程, Protobuf协议,如何与服务器对接等常用游戏开发中的专题和算法。
性能优化与稳定性
游戏开发完成以后,对于性能需要优化,比如游戏的流畅度,手感,帧率,CPU占用率,Shader优化,Drawcall优化,阴影优化,内存优化,算法优化等。稳定性也很重要,在测试的过程中保证程序的稳定性,稳定性直接和用户的流水率等运营数据有关系,好的一个游戏产品,稳定性是最基础的保障,同时稳定性又最考验技术主管与团队的功底。
好今天的分享就到这里,从我们的讲述中不难看出,Unity入门容易精通难道理,但是大家也别为难,只要用心的学习积累,这些问题都可以搞定,因为都是成熟的解决方案与技术。?