写在最前

很多小伙伴想进阶Unity主程进阶Unity架构师,不知道要学哪些知识,今天给大家分享一下比较完整的知识体系,Unity学习路线,介绍一些有干货的博主与教程,给大家做参考。

不管你是已经工作了,还是正在学习中的Unity初学者,如果你想在游戏开发行业中有更高更远的发展,请用五分钟阅读下面的文章。

官方资料

Unity User Manual 手册

Unity - Scripting API(API 详解)

Unity - Learn - Modules(官方视频教程,适合英语好的同学)

下面是收集的一些不错的视频教程,对照目录可以选择自己合适的教程观看

从浅入深,菜鸟也能学!

1: 编程语言,数据结构与算法

  1. c#的基本语法与常用的机制:权限,继承,多态, virutal, override委托,协程,foreach,泛型,Lambda表达式,Attrubute,反射,枚举,异常处理try/catch,垃圾回收等。了解这些C#的语法与核心机制,有助于你写出高性能的代码。

(2)掌握常用的数据结构,熟悉每种数据结构背后的实现原理与性能细节: List, Hash表,队列,栈,链表,字典,树,图等;

(3)了解常用的一些算法思想: 分治,动态规划,贪心算法,穷举,预先计算与查表,搜索,排序等。

推荐教程(点击可查看):

Unity基础篇

Unity:安装环境与职业规划篇

Unity:Unity2D游戏实战《飞机大战》

Unity 0基础项目实战《极品飞车》

Unity:Unity RTS游戏实战系列

2: 熟悉Unity游戏引擎使用的非渲染的核心机制:

  1. 熟悉开发环境与开发工具: .net, mono,il2cpp,android SDK, android NDK, JDK, visual studio, git,svn等。

(2)熟悉Unity引擎中的各种工具的使用: profiler, stats, frame,debugger, log等;

(3)熟悉Unity编辑器扩展机制来定制开发流程与相关工具:关卡编辑器,地图编辑器,代码自动生成等。

(4)熟悉Unity的跨平台的开发与调试:基于编辑器/iOS/Android/win/mac等平台如何开发与真机调试。

(5)熟悉常用的iOS开发与Android开发的一些核心概念与机制:Activity,OpenGL thread等。

(6)熟悉Unity的各种资源加载策略的机制与用法: Resources, AssetsBundle,StreammingAssets等。

(7)熟悉基于Unity组织大型游戏项目与分工合作的工作展开:美术,程序,策划如何同时开发,将相互影响降到最低等。

(8)熟悉Unity的各种配置与相关参数对游戏与性能的影响:物理引擎的参数,编译的相关参数,unsafe code的相关参数等。

(9)熟悉各种游戏常用的算法原理与方案:寻路导航,网络,http,AOI, ROV动态避障,定点数物理引擎,程序生成地图,行为决策树,状态机,流场寻路等。

(10)熟悉常用的解决方案,框架库,开源项目:

Lua热更新: xLua, ulua;

C# 热更新: ILRuntime,huatuo/HybirdCLR(wolong)

Json文本序列化与反序列化: LitJson库;

二进制序列化与反序列化: Protobuf;

资源管理: YooAssets等;

CSV表格数据管理: CSVParser, Flash闪表工具等。

(11)Unity DOTS 开发: ECS, Burst等;

(12)操作系统的基本知识:文件读写,多线程与同步,虚拟内存,垃圾回收算法等;

推荐教程(点击可查看):

Unity:精选推荐

Unity框架设计篇

打造基于MVC的UI框架

自己造轮子,打造Unity定时器框架

UnityWebRequest网络通讯全功能详解

Unity客户端网络架构设计与实现

两小时搞懂ECS架构

架构师面试必备:向前渲染管线详解

2小时搞定DoTween在商业项目中的使用

向前渲染管线核心解密: 3D阴影的核心原理

战斗系统核心技术之《3D角色的UI血条架构与设计》

游戏战斗核心技术:攻击技能架构与设计

Unity如何打造商用框架

独立游戏《Unity打造关卡编辑器》

腾讯内部技术:任务系统的架构与设计

Unity 框架设计(四) 基于Excel数据驱动框架

打造基于AStar的寻路导航系统

Unity热更新+AI专题

打造基于xLua热更新框架

huatuo 热更新原理与实战详解

两小时带你搞懂ILRuntime热更新

行为决策树实战详解

Unity 游戏开发之面试专区视频教程

程序员如何写简历拿高薪Offer

面试必问: 手写Unity协程

1~3年Unity开发人员跳槽规划与面试准备

面试经典:PBR渲染流程详解

一节课搞定C#反射底层原理

算法面试专题:穷举法解决排列组合问题

字节跳动面试题:Unity底层如何处理C#

3: 熟悉一个游戏项目应该如何管理与如何组织;

  1. 如何基于git等版本管理工具来管理项目;
  2. 搭建框架,技术选型,技术验证,让策划,程序,美术能协同工作;
    a:目录结构划分与规划,将不同的研发人员分开(美术,策划,核心程序,基础程序);
    b:引入基础的库与相关模块: 资源管理框架,网络,protobuf协议,json等;
    c:根据游戏的类型来制作一些开发中的编辑工具:地图编辑器,关卡编辑器,技能编辑器等;
    d:根据游戏的类型编写通用的框架:资源管理,网络管理,协议管理,声音管理,配置表管理,事件管理,UI管理等。
    e: 热更新的技术分析与接入: Lua方案,ILRuntime方案,huatuo/HybirdCLR方案等;
    d: 性能测试与技术验证: 做好项目的技术验证与性能验证;
    e: 熟悉与服务端进行对接,熟悉网络游戏的解决方案,知道哪些放客户端,哪些放服务端。
  3. 项目进度管理与任务安排;

a:给项目组的开发人员来合理的分配相关任务;

b:追踪相关进度;

c:引入系统测试与全平台测试,尽快更近问题;

d:建立测试case与bug库记录,记录下现在有的bug与解决情况;

e:阅读团队其它成员的代码,必要时调整重构,确保代码的质量;

推荐教程(点击可查看):

Unity 网络游戏同步视频教程

《王者荣耀》UDP帧同步全流程详解

MMORPG核心技术:背包系统的设计与实现

MMORPG核心技术: 地图辑器制作与服务器上跑地图

MMORPG核心技术:基于Ghost与控制分离的角色管理

MMORPG核心技术分享:逻辑服的ECS架构与设计详解

基于ECS的技能释放与Buff管理

MMORPG核心技术:状态同步的核心技术解密

MMORPG核心技术:AOI算法源码分析与详解

网络同步:《王者荣耀》如何制作的

Unity性能调优【性能优化】视频教程

千人战斗场景优化

UGUI的DrawCall优化

Profiler与stats性能剖析工具详解

游戏程序员优化指南

Unity面试经典:如何优化Drawcall


4: 熟悉Unity引擎的渲染相关的机制与技能(可以往技术美术的角度转型)

    1. 可编程渲染管线的核心机制;
    2. 内置渲染管线的核心机制;
    3. URP/HDRP渲染管线的核心机制与处理;
    4. 熟悉常用的一些渲染机制:阴影计算,法线,漫反射光照计算,镜面反射光照计算, 深度测试等
    5. 熟悉Shader开发与常见的Shader移植修改;
    6. 熟悉常见的一些主流游戏的Shader算法与处理技巧;

推荐教程(点击可查看):

Unity Shader进阶视频教程

打造赛车游戏氮气加速特效

Unlit渲染管线全流程详解

Shader进阶:PBR渲染流程详解

Shader进阶:法线与点乘的妙用

Shader进阶:基于逐像素的兰伯特光照

TA Shader进阶:布林冯高光模型详解与实现

渲染队列,ZTest, ZWrite

趣味Shader系列: 3D涂鸦原理与实现

Unity轻量级渲染管线LWRP核心解密

Shader进阶:打造游戏宝石特效

Shader进阶《顶点正弦波》

Shader进阶之打造Voodoo风格游戏水面

TA技美:进阶篇


一、低效率的学习坏习惯


1.被动反复阅读


通常一个新手在学习Unity开发的时候,往往会选择买书去学习,首先这样的学习效率是非常差的,比如在学习C#的时候,是完全不用看书的。书上大多数都是理论知识,你并不知道哪里是重点,所以每个人地方你都会去看,但是事实往往是大多数东西你都不理解。你想要通过书来学C#,可能这本书半年你都看不完,就算看完了又能怎么样,看一遍不可能会,很多人就会选择重复去看,不仅浪费时间,效率也不高。这种学习方式是非常不可取的,你没有那么多时间来学习编程。


2.看书看视频中代码示例认为自己就理解了,从不动手编程.


这是新手在学习Unity'的时候常见的问题,也是大忌,很多人都说,我课程听懂了,但是自己不会动手写,这首先就是学习方法的错误,这是新手学Unity的大忌,不去动手写,不去跟编译器和开发环境做斗争,你永远不知道游戏开发过程中的**事情。


3.拖延


既然你选择了学习Unity,就应该知道,我们这行需要不断去学习新的东西,拖延会让你成为一个真正的“码农”。这也是影响N多人不去学习的理由。解决的办法只有一个,马上去做!一旦你开始去做了,你就会发现一切没有那么难。你的计划再完美,你选的Unity书籍再经典,你挑的Unity视频水平再高,如果你不马上去看,去学,去动手实践,那永远也只是停留在空想的阶段。成功学习的典范就是成功战胜拖延症的典范。


4.喜欢自己闭门造车


学习Unity专业知识,不是都靠自己顽强的意志,更多的是需要跟别人交流,重要的就是跟比你强的人交流,加一些氛围比较好的Unity交流学习群,或者别人的一句话就能让你茅塞顿开,学技术切记不能闭门造车,学习的大忌。
我这里有一个学习氛围特别好的Unity学习小组点击加入,里面聚集了一帮热爱学习Unity的零基础小白,也有一些正在从事Unity游戏开发的技术大佬,欢迎你来交流学习。

5.遇到问题搞不清楚,只能百度,然后自己一团糟


遇到问题的时候,不假思索「百度」,但是很多时候我们是浪费了大量的时间,也搞不清楚自己的问题在哪里。当然了,我这里特指“Unity初学者”而不是已经工作中的人。那些已经在做Unity工作的人当然很多问题都要自己解决,但是对于一个Unity新手来说,能找老师尽量找老师,很多问题我们新手不必浪费太多自己的学习时间,因为那样的效率太慢了。



一些学习的好习惯


1.与其反复阅读,不如经常回顾


大家记住,对于Unity技术性的书籍,绝对不是让你一页一页去看的,像是完成做一样。有一句话说:温故而知新,可以为师矣。学过的知识点,你时常去复习一下,你每天都见到你自然就记住了,而不会像很多人说“学了就忘”你不总去回顾,那能不忘记吗?不如有意识地总结回顾看过的Unity书,学过的知识。只需要每晚趟在床上的时候,回想一下今天都学到了什么?今天自己有进步一点点吗?


2.多做练习,多写代码,从错误中学习


一个优秀的游戏开发者,没有什么聪明人,他们都是一行一行代码积累出来的,对于一个Unity初学者来说,如果你想要找到一份不错的Unity工作,你只能是大量的练习,形成一个好的学习习惯。在初学阶段哪怕对着书本敲也没有什么问题。认真完成书中留的习题,在自己没有尽最大努力的情况下面不要去看答案。不要怕犯错,每一次犯错都是自己进步的机会。


3.多总结问题的解决方案,多写可复用的代码,拒绝复制粘贴


每天把学习中遇到的问题最后的解决方案总结一下,想想为什么出现了这个错误,加深自己的印象,是什么导致了这个错误,犯过一次的错误就尽量不要犯第二次,导致错误的根本原因是什么。是自己的逻辑混乱,粗心大意,还是程序太复杂?


4.对于自己想要学习的内容,制订一下计划,有节奏地学习


一个学习习惯好的人,做什么事情都会有一个明确的计划,对于一个Unity初学者来说,一份好的学习计划是你开始的前提,因为学习一个东西最怕三天打渔,如果能够持续地学习一个东西,我可以把它学习地很好。这时候,你就应该结合我自身的情况,选择一段最佳的学习时间,在这段学习时间里我可以不被打扰,保持高度专注。比如每天早上6.30起床看一个小时书。


5.注意劳逸结合


对于电脑工作者来说,多参加体育锻炼,多去户外走走,运动能够增强人的记忆力,并且有时候还能产生灵感。如果身体不好,你的学习效率会非常低,人的精神状态一旦非常好的时候,做什么都会如鱼得水。想要成为大神,身体好是前提条件。有人30岁成为大神,我资质不好,我35岁成为大神总可以吧。切莫在30岁的时候就把身体弄跨了,然后35岁转行了,永远失去了成长为大神的机会。


6.向别人解释你的知识,多与人讨论


一个NB的Unity开发者,一定是一个很会思考的,有能力就多写博客,多分享自己的所学所思,只要你能写出东西,不怕你写的太低级,这些对于学习者自身也是非常有益的。通过用别人能够理解的语言来解释你学到的东西,本身就要求你对该知识充分理解。另外,很多人经常感叹「跟你讨论一下,我马上变得有思路了」,这其实就是交流的作用。

7: 与团队成员,客户,老板沟通需求,深度交流,有效沟通;

  1. : 能谦虚的听完其它人的讲话与观点;
  2. : 记录好别人观点的重点与内在逻辑,并重新梳理,找确认好需求;
  3. : 针对问题,提出自己的解决方案与疑虑,深度沟通;
  4. : 每次沟通完后做好小结,发到邮箱等待确认,实现完成的一次有效沟通;.

8: 关注最新的技术前沿动态;

  1. Unity引擎的技术动态与发展方向;
  2. 其它引擎的技术动态与发展方向;
  3. 关注虚拟现实,VR, AR,元宇宙等相关技术动态;
  4. 关注深度学习AI训练等与游戏,计算机3D相关的交叉领域;

游戏开发技术前沿动态论坛

最新游戏资讯论坛

最后

推荐一位Unity干货博主Blake老师

上面的课程大部分都是他免费分享的

不管是对刚入门的小白者需要提升的各位来说,他分享的课程都是干货满满的

当然他还有系统学习班,有需求的同学可以去了解一下

最后的最后

这里要注意,对于学习,热情这个点真的是非常重要的。无论你的热情来源是什么,有了这份热情与激情,你才会主动投入更多去学习游戏开发。正是这样,才能真正做到持之以恒。

游戏开发和文学创作,音乐创作一样,都是创作作品。我们作为一个凡人,更希望的是作品能够得到正面的关注,这样才能让我做出更好的作品,也让我更有动力去创造和完善我的作品。

谢谢各位能看到这里,希望这篇文章可以给你指向一条不错的游戏开发之路。

以上,共勉

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐