關於Unity的學習我的路線是否合理,應該怎麼改進?
題主背景:題主專業是信息學院的電子信息工程專業。具有c/c++基礎,數據結構與演算法基礎(大概是不掛科60分的水平)。
學習unity動機:真的超級超級想把自己腦海里的遊戲點子實現出來!學習路線:深刻理解學習必須是理論+實踐齊 頭並進。所以制定了兩條路線。——〈實踐路線〉:準備」數個小遊戲實例視頻」。1、看一遍;(聽清楚講師講的每一個字,看清楚每一個操作)2、跟著做一遍;(腳本名,文件夾名,甚至包括大小寫都建立的一樣)
3、關上視頻自己從頭再做一遍;(這個時候遇到問題一定要記錄下來)4、再看一遍。(回味一下,重新審視一遍)這樣我就覺得把這個視頻「榨乾」了。可以換下一個了。——〈理論路線〉:有兩個對象,1是unity手冊,2是c#學習。關於手冊:通讀一遍,不理解的不急,留個印象,需要用到的時候起碼知道在哪找。某個知識點用了第二次還需要翻手冊的一定要做筆記。關於c#:我入手了一本《c#入門經典第六版》(個人學完200頁之後及其推薦!!!)不能下載這本書上的源代碼,手動輸入每一行代碼!總結:我把每天分配給學習unity的時間分成不同比例的兩份,分別進行這兩條路線。第二 條路線再次按比例分為兩份。ps:願意看到這的您,感謝您,再次感謝您。我重申一下我的問題:我關於unity的學習路線是否有錯,有什麼地方需要改進。敬上
贊同@FXCarl 的觀點。
unity只是個引擎工具,掌握好基礎上手是很快的。本人電氣專業,也題主一樣沒計算機基礎,有幸進入一個計算機實驗室,開始接觸學習unity。關於C#:&<&編程語言實現模式。
如果看得還有些懵懂,再把編譯器設計,編譯原理方面的基礎知識補補。關於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#和一些面向對象等的相關的思方式,接下來是學習Unity1.視頻要看,假設視頻做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程序中的信號,就不怎麼理解?怎麼學習呢
※初學西班牙語,零起步,買什麼書比較好?
※如何評論史鐵生?
※工科讀博士真的那麼可怕嗎?