如何提高unity開發水平?

參加工作半年,工作內容主要就是搭UI菜單(ugui)以及一些修修補補的事情。感覺現在遇到了瓶頸,雖然可以實現策劃的需求,但是缺乏面向對象思想,代碼邏輯混亂,易出bug,而且拓展性很差,有時策劃稍微改一點需求就推倒重做。

現在在能力提升以及職業道路發展上有點迷茫,不知從哪下手提升能力,如何提升更快?

現在的狀態是《c#入門經典》已經讀完,但是《c#深入理解》屬於基本看不懂的狀態,像是繼承派生介面,委託事件,LINQ等知識基本都還在書本上,不知道怎麼合理的運用到項目中。

unity中也是一樣,代碼邏輯混亂,不易修改或拓展,其他的諸如AI,網路,shader,gc等方面的知識也是只是看看博客,學了基本等於白學,不知如何靈活運用。。

軟體開發中諸如演算法與數據結構,設計模式,圖形學等等也都只是稍微地看一看。這些技能對於遊戲開發有多大作用,需要學到什麼程度呢?

請問有什麼好的方式能把這些有用的技能整合到一起,或者說我應該從哪裡開始下手,提升自己的遊戲開發能力?


1.每天寫工作筆記問自己幾個問題 (1) 今天做什麼了 (2)做得怎麼樣 (3)有沒有效率低下 (4)如何提高效率 (5)有沒有更合適的解決方案? (6)如果下次我會怎麼做。

2.看書,《代碼大全》《Head First設計模式》《遊戲編程模式》多看看知乎上大神們推薦的書。

3.平時工作或者和同事交流遇到的知識盲點記下來,抽時間消化掉。如何進一步提升自己的能力? - 涼鞋的回答。

4.寫博客,把自己知道的想辦法表達出來。

5.你說的數據結構演算法AI Shader是為了解決特定問題的(目前來看這種問題讓主程或者技術支持去解決),有時間的話可以自己排個序列個計劃逐個突破,或者遇到問題時候再去研究,半年的話目前提升代碼質量比較重要。

6.ugui/ngui你天天用,源碼你看了嗎?源碼中用的unity API你都知道嗎?或者ugui/ngui如何拼效率更高?如何做優化?

7.每天自己做事情的方式是在舒適區還是學習區還是恐慌區?

8.以上能做到任意一條都會殺出一條血路哈哈哈哈哈哈,看你自己了。


我也剛開始接觸Unity,我感覺,Unity的腳本的方式似乎是反面向對象的,所以單純的用面向對象的思路來理解Unity會覺得到處都不自在,後來我轉變思路,不再單純的用面向對象的思路來理解,一下子有種豁然開朗的感覺。

我看有人說Unity的水平有3個層次:

入門級,會熟練使用編輯器,和一些基本的腳本編寫。

中級,熟悉大部分api,包括編輯器api,除了遊戲,還能開發插件。

高級,在中級的基礎上,能熟練的編寫符合需求的shader

當然,以上只是說Unity水平,並不等於開發水平。

我看題主的描述,感覺題主目前困惑的應該不是Unity本身,而是編程領域的通用技能,因為換做任何一個編程領域,其實都會遇到題主說的這個問題,要提高這方面的水平沒有別的辦法,只能是多看,多寫,多改。

多看指的是多看書和優秀的源碼,比如 @涼鞋 答主第二條中提到的那些書對解決這方面的問題就非常好,除了看書以外,還應該多看看優秀的源碼學習牛人是怎麼寫代碼的,看得多了,自然眼界就上去了。

但是光看還不行,還得多寫,看過的東西要應用起來,用的多了也就記住了,最後成了習慣,然後就是多改,多改指的是重構,當你有了新的認識,覺得之前的代碼寫的不好的時候就可以將之前的代碼重構一下,改的多了水平慢慢也就高了

一點粗淺見解請大神拍磚指正。


我覺得你剛開始做程序,先定一個你能達到的小目標,比如說使用一些設計模式重構你認為寫的爛的代碼。不要再想了,光想沒有用,去做,多做多想,還有很重要的一條習慣,遇到問題不要立馬去問你們的主程。請記住,沒有哪本書教你成技術大神,官方API勝過國內好多教科書~還有就是養成多review自己代碼的習慣吧。並且不要吝嗇自己學到的,與他人分享,別人也會與你分享。加油!


主程沒有給你代碼規範?合格的代碼應該是有框架的 UI代碼如果經常要大改 那就是代碼結構有問題。新人別指望自己去做一套 經驗太少 還是要選對項目跟對人,進步會很快


書只是用來複習和彌補漏缺的知識,零基礎看書效率慢很多又看不懂,看untiy的教學視頻比較好,聽不懂的就百度加qq裙請教別人,還有別一天到晚學習工作,注意多休息要不然三十而立了,身體卻垮了


多多參與項目吧


你所學的都是api和語法,對開發的質量幫助有但是已經到了瓶頸,需要關注設計方法


推薦閱讀:

編程該怎麼學下去(C#)?
c#中為什麼async方法里必須還要有await?
感覺被C#慣壞了,想實戰運用C++該怎麼入手?
就Unity 3D的C# 而言,有什麼是你code review時一看到就是問題的地方?
unity的UnityEngine.dll中extern非static函數是什麼原理??

TAG:遊戲開發 | Unity遊戲引擎 | C# |