Unity3D 學習路線?
題主零基礎啊,真是零基礎啊,什麼都得重開始學的那種。
以前也並沒有接觸過編程方面的知識。現在想從事遊戲開發相關的工作,所以準備自學Unity3D,但是U3D多數是使用C#來進行編程,題主又不會,所以想從比較簡單的Python開始入手,然後了解了編程的基礎了,再開始學習C#(或者C?),不知道這個線路是否正確。
咳咳,假如你只是想做遊戲而不是鑽語言的話,最好不要一開始就鑽語言。
建議去看一些視頻教程,建議看Unity官方教程spaceshooter,總長度為3-4小時好像,每小結不超過30分鐘,先完成一個遊戲,收穫一些成就感,才知道自己缺什麼。
語言要不要鑽呢,很有可能是要的,但不是現在,你不知道自己缺什麼,也就不知道該補什麼。搬一篇自己之前寫的文章 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,多學、多練、多想。 我在豆瓣上維護了一份書單 遊戲設計夢想家,歡迎圍觀。
歡迎試玩我的免費遊戲 炒房筆記 [iOS]。
先不要擔心編程語言的問題。你把c sharp的語法弄明白,再做幾個官方教程上的項目就基本夠用了。圖形渲染、優化、AI這些東西離初學者還挺遠,而且沒有計算機專業的背景也不好入門。作為初學者先把引擎本身弄熟悉更重要。從學python開始入門繞的圈子有點大。大多數編程語言除了少數幾個比較難入門,其他都可以直接開始學。零基礎的階段培養興趣比較重要,不要把學習遊戲開發當成學習編程。Unity官方教程的前幾個遊戲只靠不到200行的代碼就能實現。
鼓起勇氣,看Unity的書,然後再視頻。
動手做2、3個遊戲,再看路線的問題不遲。unity 相當於遊戲開發的集成開發環境,涉及到遊戲開發的各個方面,並且都是經過層層封裝的,非常貼近於業務邏輯層,對於底層要求不高;因此,opengl,directx,c# 之類的粗略懂點就可以了。
之後的unity學習主要圍繞項目來進行,例如可以參考一些項目視頻:Unity RPG MMO-火炬之光開發修改自己改改代碼,加加功能,這樣才能快速進步我也是零基礎學習unity的,可以看一下我在怎麼規劃一個零基礎學習Unity3D的「方法」或者「流程」? - Unity(遊戲引擎)里的回答,可能會對題主有幫助。
我建議題主直接學習C#吧,這樣可以直接上手unity編程,還方便以後學習c-like語言。學習C#,我主要是參考的C#本質論,我覺得還可以,你也可以看看。題主說到想從比較簡單的python入手,我認為那是沒有必要的,學習編程主要學習思想,入門必然會有難度,不管你用什麼語言。你直接學習C#可以先從最基本的hello world開始一步一步學習,難度也是可以接受的,總而言之你要肯花時間,而且最主要的是——你要學習的是unity3d又不是編程。
我也在學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證書,開心。c#還是需要學的。
很簡單的道理,你試試在unity的script help裡面搜索一下for,while這樣的語句看看?這些都是c#的基礎,不懂的話沒法玩的轉unity的另外如果你想學得快,肯定要去github吧?如果c#一點不懂,github里的程序也很難看懂但是不用把c#學到很懂才來做unity,個人感覺,因為c#是面向對象的,和以前自己的編程認識有很大不同,所以要好好看一下這一方面的基礎概念。但是概念理清以後就ok了。不用搞一本c#死厚死厚的書來讀,一般厚度的入門書就好,有外文原版或者翻譯版都可以
最近看完了那本不大厚的c#入門,翻譯的不怎麼樣,不過對著程序敲兩遍還是很有收穫的。覺得c#主要難在他是面向對象的程序,所以有很多地方和以前的習慣不一樣,不過如果把oop一套概念有些理解以後,就會發現這種編程方式很好用啊。
話說我剛開始弄unity的時候完全沒有任何關於oop的概念咧,如果不是常式看不懂也不會想學c#的→_→看官方文檔,看官方案例,看官方書籍,看官方視頻,玩轉csdn,官方論壇,天地會,遊戲蠻牛,你都做到了?你就成功了!
既然要學就要打好基礎,現在的人都過於浮躁。不想想有一天u3d不行的了話怎麼辦
我也零基礎,專業是測控,我報學習班學的。一開始是對遊戲引擎有一個大題了解,自學這種視頻網上很多;然後是學習C#,不講太多講完繼承就完了,這個網上視頻也有,比如知智傳播課的,慕課網上的(慕課網上的不是視頻);下來就是講項目,就是《unity3D手機遊戲開發》上的三個項目;接下來是領著我們做一個小遊戲,可以買這本書參考一下,不過書有點過時了,書上用的是unity3D 4.X的版本,這些項目網上可能也有,我沒找過;最後是讓我們自己做一個遊戲,不會的可以問班裡的老師,自學的話可以去百度。這就是學習班講課的過程,自學可以參考一下過程,unity盛典也是學習過程中必不可缺少的工具。報班入門快一些,但學費不低(我的是15k),所以能自學的盡量自學。
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!.不要去想困難,要做就要做最好的!
先去自己上網找視頻學習,什麼蠻牛http://edu.manew.com/ 納金論壇http://www.narkii.com/club/這些平台 ,先會做一兩個簡單的才開始去看基礎語言
技術為市場服務.unity3d是平台,語言嘛不會了 去翻書就可以了。
動力源自哪裡的問題?
看官方文檔,看官方案列,看官方視屏,跟著寫,跟著寫,跟著寫(重要的事情說三遍)逛官方論壇和遊戲蠻牛。這樣自學中,不過不是零基礎開始,是C/C++程序員。 零基礎學習還是要耐心啊,加油。至於從哪門語言開始其實不用糾結吧,一通百通,即使有不同,基礎有了,都好理解。但是一定要會一門程序語言,畢竟真正做的時候還是要用一種語言表達出來。建議挑個時下流行的語言開始學。C#其實相對比較好理解的了。
去官網,學習裡面的tutorials,這是unity最好的入門教程,沒有之一!!!!!!教程是全英文的,所以你得提高自己的英文水平,至少能看得懂軟體界面,聽得懂英文教程!
至於csharp一開始不用太在意,從C語言和c加加過來的,有基礎不用額外學!沒基礎,打基礎去! (PS,英語好的話學起來不難)另外unity community裡面新手遇到的問題基本都有,多逛逛!!!都是英文的。。。。。。順便說一句,英文的資料比中文的質量要好的多!!!樓主加油我也是直接從編遊戲上手的,直接翻牆看下這塊的入門視頻,程序很簡單。主要是環境配置要弄好,大概鼓搗幾天就可以用5塊錢來做個特效了。也許真的沒有想像的那麼難。可以參考我自己寫的備忘攻略。AR增強現實玩法攻略(1) - 知乎專欄
建議你先看下教程, Unity3D新手入門中文字幕視頻教程 不錯,適合剛入門的人,主要是下面有中文字幕挺好的
【Unity3D視頻教程】Unity3D新手入門中文字幕視頻教程!廣大入門學習者必備教程!
http://www.cgxia.com/forum.php?mod=viewthreadtid=531fromuid=27405
(出處: CG俠)
推薦閱讀:
※假如光榮做個西方歷史的策略遊戲,選哪個國家哪段歷史比較好?
※如何評價 Unity 5 的正式發布?
※虛幻引擎的前景?
※2018秋招 offer 選擇:網易遊戲研發(杭州) vs 摩根士丹利IT(上海)?
※如何評價 Unity 3D 新的 UI 系統?