找回密码
 立即注册
查看: 1385|回复: 20

Unity3D 学习路线?

[复制链接]
发表于 2021-11-11 15:13 | 显示全部楼层 |阅读模式
从题主提出这个问题到现在已经有三年了,如果能一直坚持到现在相信已经能独当一面了。
给后面关注这个问题,想要进入游戏开发行业的同学回答一下。

第一,如果没有编程基础,并不建议从Python入手。
Python虽然上手难度较为简单,但这种动态类型语言太灵活,对使用者的编程功底反而要求更高。而且目前采用Python的游戏框架很少、也不太成熟。
我们和很多同学做过交流,发现将C#作为第一门编程语言来入门,其实还挺合适的。C#的上手难度不高、语法比较严谨,可能对于新手来说更为合适。

第二,要学习Unity3D首先要做的就是熟悉引擎,一开始可以直接跟着视频教程学习,不需要有多少编程基础。
如果像题主一样想从事游戏开发相关的工作,自然会很快遇到瓶颈,那时再来回头补C#基础。
C#从入门难度上来说不会比Python难多少,并且在这个阶段也不需要学的太深入,掌握面向对象的用法就行。
剩下的就是大量的实践,可以找自己喜欢的游戏复刻,也可以零散的实现一些小功能。学习路线大致是这样的:



我们在面对全新的领域时都会有点心虚害怕,但是其实学习做游戏并不是一件很难的事情。只要通过以上所说的方式快速入了门,之后的发展就能做到心里有数了。知乎上Unity进阶的问题我也答过不少,到时可以再参考进行下一步的学习。

可供参考的资料,我们的免费视频教程:
我们的游戏开发专栏(Unity为主):

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-11-11 15:19 | 显示全部楼层
从题主提出这个问题到现在已经有三年了,如果能一直坚持到现在相信已经能独当一面了。
给后面关注这个问题,想要进入游戏开发行业的同学回答一下。

第一,如果没有编程基础,并不建议从Python入手。
Python虽然上手难度较为简单,但这种动态类型语言太灵活,对使用者的编程功底反而要求更高。而且目前采用Python的游戏框架很少、也不太成熟。
我们和很多同学做过交流,发现将C#作为第一门编程语言来入门,其实还挺合适的。C#的上手难度不高、语法比较严谨,可能对于新手来说更为合适。

第二,要学习Unity3D首先要做的就是熟悉引擎,一开始可以直接跟着视频教程学习,不需要有多少编程基础。
如果像题主一样想从事游戏开发相关的工作,自然会很快遇到瓶颈,那时再来回头补C#基础。
C#从入门难度上来说不会比Python难多少,并且在这个阶段也不需要学的太深入,掌握面向对象的用法就行。
剩下的就是大量的实践,可以找自己喜欢的游戏复刻,也可以零散的实现一些小功能。学习路线大致是这样的:



我们在面对全新的领域时都会有点心虚害怕,但是其实学习做游戏并不是一件很难的事情。只要通过以上所说的方式快速入了门,之后的发展就能做到心里有数了。知乎上Unity进阶的问题我也答过不少,到时可以再参考进行下一步的学习。

可供参考的资料,我们的免费视频教程:
哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili我们的游戏开发专栏(Unity为主):
游戏开发入门指南——Unity+

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-11-11 15:22 | 显示全部楼层
搬一篇自己之前写的文章  Unity 开发入门指南(学习感悟)

学习 Unity 开发接近一年了,从开始对 Unity 一无所知,到现在能模仿制作出一个完整游戏,对个人成长来说,也算是一个不大不小的里程碑。这篇是对自己学习的总结与回顾,希望对 Unity 初学者有所帮助。
我的工作是做模拟集成电路设计,工作中基本不涉及编程,所以代码经验不算丰富。根据我的学习经验,总结出学习 Unity 可以分为四个阶段:
第一阶段: 跟着做。跟着 step by step 教程做,大量做。这个阶段的重点是学习 Unity 各种组件的使用(比如物理、UI等)。此时掌握编程语言最基础的东西就可以了,比如类、控制流、List、字典等。
起步阶段的难度曲线越平越好,在我对 Unity 一无所知的情况下,选择从观看 慕客网 视频起步,开始给自己定的目标很简单:熟悉 Unity 界面(目标就是定这么低)。 两个视频下来,差不多就熟悉 Unity 界面和一些基本操作了。
如果这个阶段你正在看三消、2048 这类靠 UI 和算法支撑的案例教程,希望你把重点放在教程中是如何使用 UI 组件上面,选择性忽略具体算法实现。不然,对于代码能力较弱的同学,分分钟被打击。
第二阶段: 反推。这一阶段先看教程效果,然后反推效果的实现方式,最后研究别人是如何实现的。
这一阶段的效果是,即可以检验你第一阶段的学习效果,又可以加深对 Unity 的理解 。
第三阶段: 模仿。从模仿功能到模仿整个游戏,找你玩过的或者当下热门的游戏,模仿它。
我模仿的 Lifeline ( 生命线 )和 BACK2ZERO。
这一阶段需要自己思考如何用 Unity 和代码把效果实现出来,这会倒逼你去学习 Unity 的使用,以及如何用合适的代码实现想要的效果。通过这一阶段,你对 Unity 的掌握程度和代码水平都会有很大提升(当然,语言高级特性、数据结构和算法、设计模式等这些小怪也是要刷的)。
第四阶段: Enjoy it。这一阶段你已经能从容驾驭 Unity 和代码,可以自由地把脑海中的想法实现出来,开始享受创造的快乐。我想,做技术的乐趣莫过于此。
这一阶段应该关注 Unity 的内存优化、渲染优化、资源管理、Shader 等,如果想做出玩法和画面更好的游戏,还要学习 AI、图形学、引擎架构等相关知识。
驾驭一项技术,无他,善用 Google,多学、多练、多想。 我在豆瓣上维护了一份书单 游戏设计梦想家,欢迎围观。

以下链接是之前用 Unity 做的 demo。
· GitHub
发表于 2021-11-11 15:30 | 显示全部楼层
咳咳,假如你只是想做游戏而不是钻语言的话,最好不要一开始就钻语言。

建议去看一些视频教程,建议看Unity官方教程spaceshooter,总长度为3-4小时好像,每小结不超过30分钟,先完成一个游戏,收获一些成就感,才知道自己缺什么。

语言要不要钻呢,很有可能是要的,但不是现在,你不知道自己缺什么,也就不知道该补什么。
发表于 2021-11-11 15:32 | 显示全部楼层
这是UnityA计划的目录,你可以参考下当做学习路线,如果感兴趣也可以去我们的网站看看。
Python是简洁而非简单,大多数人用来做爬虫或一些数据上处理。
C#是面向对象的,这对于编程新手来说比较容易学习。

第一阶段:基础
101        暗黑奇侠(跳过)
102        Unity5.2入门课程-进入游戏开发的奇幻世界
103        Unity5.3入门课程-开发2D游戏
104        Unity零级案例-拾荒者Roguelike
105        Unity零级案例-打砖块
106        Unity零级案例-古迹探寻
107        Unity中的C#编程-零基础
108        第一季 C#编程初级教程
109        第二季 C#编程中级教程
110        Unity零级案例 - 坦克Tanks
111        Unity初级案例 - 贪吃蛇
112        Unity初级案例 - 我的世界
第二阶段:入门
201        Unity5.6-API常用方法和类详细讲解
202        NGUI-Unity最火UI插件学习3.6.8版本(选修)
203        NGUI-Unity4.6测试UI入门学习(选修)
204        NGUI-Unity5.1超强UI案例学习
205        插件-DOTween动画教程
206        组件-Mecanim动画系统
207        Unity中的动画系统和时间轴
208        Unity初级案例 -秘密行动Stealth
209        黑暗之光
210        第三季 C#编程高级教程
211        第四季 数据结构教程
212        移动-Unity-Android那些事
213        接入-Google AdMob广告 - 赚取第一桶金
214        接入-unityAds广告 - 视频广告(选修)
215        接入-Bmob支付(游戏商店出售道具功能)(选修)
216        Unity中级案例 - 捕鱼达人
217        组件-粒子系统Shuriken
218        如何制作塔防游戏
219        基于MVC框架的俄罗斯方块开发
220        Unity中级案例 - 猎宝行动
221        插件-ShareSDK集成指南
222        通过案例学习:游戏的存档与读档(选修)
223        Unity初级案例 - 坦克大战
224        Unity初级案例 - 愤怒的小鸟
第三阶段:进阶
301        Unity中级案例 - 萌熊跑酷
302        Unity插件-Behavior Designer行为树
303        Unity性能优化全攻略
304        Unity编辑器扩展(Advanced Editor Scripting)
305        UnityUI框架Assetbundle
306        Unity中的Lua编程
307        Xlua游戏中的热更新
308        Ulua热更新
309        游戏编程框架
310        Unity着色器入门教程 Shader
311        第五季 算法-编程内功修炼
312        游戏开发中的设计模式
313        Unity游戏开发-人工智能编程
314        Unity游戏开发-3D数学基础(选修)
315        Unity游戏开发-人物捏脸(选修)
316        Unity附加案例-逃离地球Escape from the earth
317        Unity附加案例-格斗游戏
318        Unity附加案例-CS之战
319        Unity附加案例-极品飞车
320        Unity附加案例-泰斗破坏神
321        AR系列教程-Vuforia入门
322        AR系列教程-Vuforia进阶
第四阶段:网络游戏
401        UNET多人联机游戏开发
402        MySQL数据库(PhoronServer服务器端基础)
403        PhoronServer服务器端基础教程
404        Unity附加案例-丛林战争
405        C# Socket TCP开发网络游戏
406        Unity研究实验室(各种零散的小知识点)
发表于 2021-11-11 15:35 | 显示全部楼层
先不要担心编程语言的问题。你把c sharp的语法弄明白,再做几个官方教程上的项目就基本够用了。图形渲染、优化、AI这些东西离初学者还挺远,而且没有计算机专业的背景也不好入门。作为初学者先把引擎本身弄熟悉更重要。从学python开始入门绕的圈子有点大。大多数编程语言除了少数几个比较难入门,其他都可以直接开始学。零基础的阶段培养兴趣比较重要,不要把学习游戏开发当成学习编程。Unity官方教程的前几个游戏只靠不到200行的代码就能实现。
发表于 2021-11-11 15:44 | 显示全部楼层
unity3D作为优质的3D图形开发引擎,被广泛的应用到游戏/虚拟现实/图形图像仿真等相关领域,据统计有42%的游戏开发者使用u3d作为主要开发引擎。
杰哥一直从事游戏/VR领域开发工作,在某种程度上和题主有相似的经历,从小白到大游戏公司主程之路让我明白了一些道理,在这里分享一下,希望对题主有帮助。
首先明确回答:目前unity3d的游戏开发核心语言在于C# /Lua / C++这类语言,建议还是从C# lua 开发着手开发。
其次,说一下学习路线,一种是官方路线;一种是实战路线:可以参考文章:unity3d 学习路线-小白到高手。
官方路线建议直接从:unity官方网站给出的demo以及模块讲解入手,作为初步学习的理论及实践依据,官方路线入口:
Unity - Learn - Modules。


虽然说官方路线只是作为基础性的知识案例,但是不容小觑。任何一门知识技能,基础永远是最重要的,因为官方提供的最新功能,知识框架,制作理念都是通过这个通道想大家展示的,缺点就是全部英文的,不过要做好编程,english 还是要克服的。这里杰哥并不是要大家一直把unity官方知识吃透在进行其他学习内容,官方基础知识而是要作为我们的知识库,不断的在进阶过程中回过头来看;因为Unity3d的相关知识太广泛了,很难在很短时间内了解或者吃透每一部分,有些模块可以现学现用,这种效果有时候更深刻。
最后说一下实战路线,老掌门CEO - 简书这里有我写的一些文章,可以挑选形式的看一下。
初学者:
我记得当时我开始做unity3d的时候,我都不知道u3d是什么,C#也没学,直接就去工作了,发现只有进入这一职位行业,才能真正的起步学习。那是刚毕业的那段时间,因为是个穷屌丝,我身兼数职,白天VR软件公司上班,晚上混迹酒吧做服务员调酒师,深夜回到家还要自己整理和反思自己今天unity3d学习到的东西和遇到的问题,就这样坚持不懈的走着,一年的时间,我从小白变成了中级unity3d开发。
跳槽提升:当你和最优秀的unity3d程序员一起工作的时候,是你成长的最快的时候
那是2015年左右,做unity3d一年半年后,我从VR公司跳槽进入国内顶级游戏公司蓝港互动-创造有趣和精彩,呵呵给老东家大个广告,在XX游戏组做开发,当时游戏虽然已经运营了3年,但是目前依然很赚钱,当时维护这个游戏的u3d只有2个人,一个是杰哥本人一个是一枚老程序员,说到此处,感觉简直进入学习的天堂,真的学到了很多的东西,为了不让老程序员辛苦,我一般就会做游戏中比较累比较重要的部分,久而久之不怕付出,坚持到底,游戏公司本身加班很重,但是也有轻松的时候,一般不加班的时候我就找一些大牛进行学习讨论,并且针对游戏中最核心的部分进行深入研究,功夫不负有心人,终于算是吃透了unity3d网络,数据,战斗,逻辑以及通信等模块,到这是我才把自己看成一个会做unity3d的程序员。
总结:任何技能知识,just do it!.不要去想困难,要做就要做最好的!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-11-11 15:49 | 显示全部楼层
我建议题主直接学习C#吧,这样可以直接上手unity编程,还方便以后学习c-like语言。学习C#,我主要是参考的C#本质论,我觉得还可以,你也可以看看。
题主说到想从比较简单的python入手,我认为那是没有必要的,学习编程主要学习思想,入门必然会有难度,不管你用什么语言。你直接学习C#可以先从最基本的hello world开始一步一步学习,难度也是可以接受的,总而言之你要肯花时间,而且最主要的是——你要学习的是unity3d又不是编程。
发表于 2021-11-11 15:54 | 显示全部楼层
鼓起勇气,看Unity的书,然后再视频。

动手做2、3个游戏,再看路线的问题不迟。
发表于 2021-11-11 16:03 | 显示全部楼层
我也在学Unity,出于个人爱好,毕竟有辣么多优秀的游戏是Unity开发的,以后在游戏开发领域的地位目测趋近于Photoshop在设计领域的地位。

对我来说,脱离了游戏开发的编程学习,是非常非常枯燥的,就像在玩一堆电路,却不装上去任何电器,只是连接了很多电流表电压表,得不到任何感性上的反馈。
建议你在对编程有基本了解之后,直接去参加游戏开发课程,阅读游戏代码和进行修改。

英语还可以的话,推荐在coursera的课程,MSU(密歇根州立大学)的Game Development for Modern Platforms. 可以免费旁听,也可以付费参与测验和考试。从零开始学习Unity开发,以2D游戏为例。我认为难度可以接受,它主要是讲图形界面部分,在后半段也会手把手帮你分析代码。

再谈谈我怎么理解的去学习代码,学习代码是一个循序渐进的过程,不怕慢,不怕复杂,在于不断尝试。了解最最基本的变量、函数、运算、类、API等概念之后,就可以看看别人的游戏代码是怎样开发的了。不一定全都理解,但是可以不断的去查阅unity API和unity user manual。
我在大学里学过一点点Java,学的很一般,但是对C#的程序读起来也感觉不陌生,同样的if else,同样的类名.方法名,因为编程语言都是相通的。所以学习Python应该不会对C#的学习产生副作用。
编程是一个很急不得的事情,有一件事你要明白:即使学习再多的编程知识,也总会遇到不理解的内容,和解决不了的问题。这里可能没有地图,没有路标,只能通过努力好久之后的星星点点成功来激励自己。如果你热爱游戏,那么这一点的成功对你来说已足够。

已获得Coursera证书,开心。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 18:08 , Processed in 0.095521 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表