關於Unity的學習我的路線是否合理,應該怎麼改進?

題主背景:題主專業是信息學院的電子信息工程專業。具有c/c++基礎,數據結構與演算法基礎(大概是不掛科60分的水平)。

學習unity動機:真的超級超級想把自己腦海里的遊戲點子實現出來!

學習路線:深刻理解學習必須是理論+實踐齊 頭並進。所以制定了兩條路線。

——〈實踐路線〉:準備」數個小遊戲實例視頻」。

1、看一遍;(聽清楚講師講的每一個字,看清楚每一個操作)

2、跟著做一遍;(腳本名,文件夾名,甚至包括大小寫都建立的一樣)

3、關上視頻自己從頭再做一遍;(這個時候遇到問題一定要記錄下來)

4、再看一遍。(回味一下,重新審視一遍)

這樣我就覺得把這個視頻「榨乾」了。可以換下一個了。

——〈理論路線〉:有兩個對象,1是unity手冊,2是c#學習。

關於手冊:通讀一遍,不理解的不急,留個印象,需要用到的時候起碼知道在哪找。某個知識點用了第二次還需要翻手冊的一定要做筆記。

關於c#:我入手了一本《c#入門經典第六版》(個人學完200頁之後及其推薦!!!)不能下載這本書上的源代碼,手動輸入每一行代碼!

總結:我把每天分配給學習unity的時間分成不同比例的兩份,分別進行這兩條路線。第二 條路線再次按比例分為兩份。

ps:願意看到這的您,感謝您,再次感謝您。

我重申一下我的問題:我關於unity的學習路線是否有錯,有什麼地方需要改進。敬上


贊同@FXCarl 的觀點。

unity只是個引擎工具,掌握好基礎上手是很快的。

本人電氣專業,也題主一樣沒計算機基礎,有幸進入一個計算機實驗室,開始接觸學習unity。

關於C#:

&<&&>到200頁才講到類,這才剛剛開始呢。不過這本書後面一大堆關於widow編程的內容,和unity沒什麼關係。個人覺得《c#圖解教程》更好一些,過完這一本,對C#有個大概的了解了。

後續:《深入理解C#》等

學到這,你可能就會有些疑問,什麼是靜態類型語言,什麼是動態類型語言,強類型,函數式等等

這時候你就可以開始補一部分基礎了,了解一下Python,C,HasKell等等。

《七周七語言》,

程序語言設計—實踐之路,

編程語言實現模式。

如果看得還有些懵懂,再把編譯器設計,編譯原理方面的基礎知識補補。

關於unity:

遊戲引擎把許多底層封裝,讓你調用API實現遊戲。但是不往底層挖一挖,怎麼有臉跟著輪子哥看漂亮妹子呢。

貼圖往模型上拉,unity是怎麼渲染好的呢? 這時候就可以了解一下shader,渲染流水線等。(圖形學方面)

除了渲染,unity還有很多值得深入了解的,遊戲中敵人AI(如何自動尋路,如何對玩家發起攻擊等),物理引擎(模擬重力,剛體碰撞,彈性體碰撞)等。

葉勁峰老師翻譯的《遊戲引擎架構》是本不容錯過的好書,其本人也在知乎有很多好答案。

學習上面內容,沒有演算法和數據結構的基礎是不可能的。所以還是得打好基礎啊。

大話數據結構

演算法第四版

數據結構與演算法分析

演算法導論等

還有很多數據結構和演算法的MOOC。

網路:

你可能想,光做個單機遊戲有什麼意思,我想和朋友一起玩。這時候得補計算機網路的知識了。

計算機網路:至頂向下

圖解http

圖解TCP/IP等

都學到這了,不可能對計算機都不了解啊。

計算機組成與設計

深入理解計算機系統等

還有操作系統也接著補補,

現代操作系統等

什麼?shader和演算法看不懂?那接著補數學吧,線性代數,微積分,離散數學……

真是無窮無盡呀⊙▽⊙。

最後選一個最感興趣的方面深入了解吧,圖形渲染,AI,伺服器等等。

(手機碼字,排版真是渣,見諒)


路線沒有問題,但是建議提高實踐操作部分的比例,視頻可以少點(因為以我的經驗來說,視頻看起來有點慢……不如看書或者看資料來得快)

然後就是做了之後,再去復盤,想想那裡可以做的更好,從實踐出發深挖知識點


哈哈,和題主一樣從電子專業出來做遊戲。

路線沒啥大問題,就是看視頻的時間可以少點,你有C/C++基礎,專門看C#的時間也可以少點,多做做U3D示例就能慢慢體會,當然C#原生編程多看看也無妨,至於unity手冊,你大可用的時候再去翻……

以個人經驗,看視頻是相對來說比較慢的,但也比較直觀,可以作為輔助學習,在此建議想看視頻的話,搞個翻牆軟體,去看youtube上一些愛好者製作的使用unity重現某款遊戲的系列視頻,比如Recreating Pokemon Go系列等,一方面老外的分享精神更足,願意分享一些比較核心的東西,另一方面他們的視頻中寫的代碼大多比較規範,對於我們這種沒有系統的上過專業課程的人,會有很大的啟發。

我的老大說過一句話「為何做遊戲花的時間長,因為遊戲不是軟體,是種類似藝術品的東西,需要時間打磨」(好吧,雖然是商業性很強的藝術類別,而國內大部分做遊戲的恐怕也不是打磨品質23333),所以做遊戲是個涉及領域比較廣的領域,因此嘗試自己製作一些美術資源並放在遊戲中看看效果,有助於你體會遊戲開發的過程,編程編久了會累,做點藝術性的工作還能緩解下疲勞。

因為有C/C++基礎,C#其實不需要花太多的時間去細看,在實踐的過程中你自然會體會到其特性,看書的話,作為入門,我只建議一本

Unity遊戲設計與實現 (豆瓣)

十個例子,由淺到深,涵蓋u3d的大部分組件的應用,裡面的一些方法甚至對實戰開發也有參考價值,看完並實踐後對u3d的了解的面就已經比較廣了。

這個過程中你可能還需要一些理論性的參考讀本,比較重要的是

3D數學基礎 (豆瓣)

大話數據結構 (豆瓣)

這些書基本上大學圖書館都有,當然自己買價格也不貴,都是實用的工具書。

此外,鑒於你對演算法不熟悉,我建議在閑暇時間去leetcode刷刷題,用C/C++來寫,有助於以後理解遊戲中應用的一些演算法。

做完Unity遊戲設計與實現 (豆瓣) 上的例子,並有一定的3d數學基礎和數據結構基礎以後,你就可以思考下在哪些領域你有興趣深入一下,3D圖像?AI?性能優化?物理引擎?亦或是遊戲玩法邏輯?等等(遊戲開發真是知識涉及範圍很廣的領域), 有了經驗,我相信你會找到哪個方向是你喜歡的。

有關是不是要學安卓,我個人覺得並不重要,PC端/手機端的遊戲類型你都可以去嘗試,不要把自己限制的太死,你喜歡鼓搗下動作遊戲,就去PC上大展拳腳,你喜歡益智類或者創意性遊戲,也不妨去手機端上試一試(陀螺儀、運動檢測器等都可以用作你遊戲的輔助工具)。

還有就是Unity僅僅是個工具,有興趣,pc比較給力,自己碰一碰ue4也可以。

最重要的還是實踐!有些東西看書不直觀,實踐就是踩坑,比如萬向鎖這種問題,你沒有做的足夠多,多到哪天讓一個物體的y軸旋轉了90度,你可能都很長一段時間都不知道這個坑。寫shader,說不定照著書寫都要出問題。踩了坑,才會想去解決,才會學到新的東西。

在國內,踏入遊戲行業,你需要做出一些努力和犧牲,但無論如何,祝你好運!


不用刻意劃分比例,看書看膩了就實踐,實踐累了就看書。

既然你已經有編程基礎,又有做遊戲的動力,那麼這兩條路線,每條只需一兩周就能走完,加起來不超過一個月的時間。通通都走一遍也無妨。


路線OK!~

補充一下我之前的一篇答案,內有稍具體一些的路線可以供你參考:Meta42:如何學好 Unity?

這裡還有一些教程,也提供給你,希望能幫到你:遊戲開發入門指南


徹底搞反了。快去搞數據結構和演算法去。


如果還是大學生,這樣子沒啥大問題,只是我建議你在學習過程中提煉自學技術的方法論,為了之後學習新技術不再像這樣慢。

如果已經工作了,你就不能這樣學習一門新技術。理由很簡單,沒這麼多時間。一個小遊戲的視頻不可能有看兩遍且實現兩遍。手冊更不是用來通讀的。


Unity只是個引擎

同樣自學Unity,c/c++基礎估和數據結構、演算法估計比你好點。

先開始學習Unity選擇的是走C#路線,放棄了JS路線

所以我先去學習的是C#

面向對象思維,設計模式,演算法,數據結構,通信等等都是前期的準備工作

這些都是怎麼去學習C#和一些面向對象等的相關的思方式,接下來是學習Unity

1.視頻看,假設視頻做A遊戲的方式是3+3+3=9,然後你自己在模仿著做一遍,變成2+2+2+3=9或者變成8+1=9.用自己的方式去實現,不一定用視頻中的方法。

2.自己寫腳本去實現Unity中的一些組件,例如Rigibody,寫一個腳本,代替它

3.自己寫插件,功能可以簡單,甚至可以BUG連連(學習中,不是項目中),但是寫插件這個過程是非常重要的。

4.重複,重複相當重要單獨的去學習Unity,隔一周,模擬做一個相同的遊戲,我做過一個類似切水果的(用NGUI和UGUI分別做的)遊戲,思路變了,實現方法也不怎麼一樣。

5.學習安卓編程,Unity和安卓聯繫密切,一些安卓的包可以用在Unity中

6.多練、多練、多練

想到再補充

我的博客地址:持之以恆


從題主的問題可以看出來是真心想學Unity3d,想開發自己的遊戲

而且思路很清晰

我有一點小建議:

找到一個時間點慢慢脫離視頻教程,主要精力放在構建一個全新的項目上,用問題驅動的方式來學習,最終要學會解決問題的能力(搜索解決方案能力,特別是英文搜索)

發現自己的弱項在哪,然後再找辦法補足

C#語言也不用深入去學習太多高級特性,一方面是Unity中的Mono環境有限制,一方面時間投入回報率相對較低。了解C#基礎就可以寫出99%的代碼了。

建議在VS中安裝Resharper插件,可以提示代碼中可以優化的地方


我看過很多原本是做美術設計的人用Unity做出來的遊戲都相當的好,他們應該還沒有題主你這種編程基礎,照樣能用Unity做出來好遊戲,所以我覺得學Unity的最佳方式就是直接上手做遊戲,遇到什麼不懂學什麼,當你做的遊戲品質提高的時候,你的水平也必然跟著水漲船高了。


推薦閱讀:

如何讓外國小孩學習中文變得有趣?
fpga學習了一個多月了,但是感覺還是沒有入門,遇到verilog程序中的信號,就不怎麼理解?怎麼學習呢
初學西班牙語,零起步,買什麼書比較好?
如何評論史鐵生?
工科讀博士真的那麼可怕嗎?

TAG:學習 | Unity遊戲引擎 | C# |