作為Unity程式設計師需要掌握的技能

2021-08-30 11:36:17 字數 1816 閱讀 5557

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

筆者介紹:姜雪偉,it公司技術合夥人,it高階講師,csdn社群專家,特邀編輯,暢銷書作者,已出版書籍:《手把手教你架構3d遊戲引擎》電子工業出版社和《unity3d實戰核心技術詳解》電子工業出版社等。

最近公司由於人員變動,需要招聘unity3d程式設計師,面試了很多人,學歷從專科到研究生,在這些人中有工作兩年的,三年的,五年的等等。在面試的過程中,面試者對於unity基礎知識的掌握很不紮實。如果只是為了完成策劃需求而無視基本功,到頭來會導致自己的基礎非常薄弱。就跟霧裡看花一樣,明面上工作經歷非常豐富,實際上這些經歷經不起任何推敲。作為unity開發者來說,對於unity的一些基本常識還是要清楚的。下面就給那些學習unity開發的程式介紹一下:

一、unity作為3d遊戲引擎必須要掌握固定流水線和可程式設計流水線,因為涉及到矩陣變換的知識點,在專案開發中會用得到的,如果讀者不懂的可以查閱資料。

二、unity作為3d引擎有自己的座標系,在此強調一點,雖然它的圖形api分為directx和opengl,但是它的世界座標系是左手座標系。

三、另外要掌握的座標系有螢幕座標系,ui座標系,視口座標,包括它們的原點是在哪個位置,因為在專案開發中也會涉及到以上三個座標系之間的變換。

四、函式的執行順序,比如awake,onenable,start 等,以及3d碰撞體的執行效率,比如球體,膠囊體,立方體,mesh等等。

五、程式的優化處理,這個是面試考察的重點,記憶體的管理也是unity程式開發的重中之重。記憶體管理無非就是對記憶體的使用,針對ui的記憶體管理使用的是圖集方式,unity自身的圖集功能浪費記憶體,比如2048*2048的圖集大小,它佔的記憶體是4m,也就是說不管圖集是否填滿,它都需要在記憶體中開闢4m的空間,但是如果使用texture packer工具就可以節省沒有填滿的空間,針對大量ui的載入可以採用分類打包圖集的方法處理。當然記憶體池的使用也是可以應用到ui的管理,另外就是對3d場景資源的管理,需要場景有自己的相簿,這樣可以重複利用,另外模型的面數,骨骼數量,材質數量這些都需要去關注。

六、記憶體優化還需要涉及到的格式,不帶alpha通道的採用jpg格式,帶有alpha通道的採用png格式,這是一種處理方式,另外一種處理方式就是將alpha通道單獨拿出來,所有的都是jpg格式,然後用帶有alpha通道的跟jpg格式檔案進行結合使用。這樣也可以優化的大小。

七、在架構設計方面,就要注意了,**的編寫,比如常用的設計模式,工廠模式,單例模式,mvc模式,fsm模式,觀察者模式等,這些模式作為開發者必須要掌握的。

九、另外對於c#中定義的string,stringbuilder或者list,arraylist等它們之間的區分要搞清楚。

十、不同機型的適配處理,技術驗證等。

十一、熱更新技術的實現,市面上應用比較廣的是ulua作為指令碼語言的框架設計。

十二、作為客戶端開發者也需要了解一些網路方面的知識,比如tcp,udp,http這些協議處理的方式。

十四、作為渲染場景的後處理方式,比如bloom,blur,hdr,ssao,pssm等等。

十五、c#中的事件監聽,委託的使用也要熟練掌握。

十六、協程與多執行緒的區別。

十七、文字檔案的載入,比如json,xml,csv,二進位制等等。

以上作為unity開發者必須要掌握的,很多人感覺在公司學不到知識,其實除了完成工作需求外,還需要主動的去學習,這樣才會真正的提高自己的技能。希望對讀者有所幫助吧。。。。。。。

給我老師的人工智慧教程打call!

作為Java程式設計師需要掌握哪些知識

知識點一 1 資料庫的鎖有哪幾種?鎖的型別有三種 1 共享 s 鎖 多個事務可封鎖乙個共享頁 任何事務都不能修改該頁 通常是該頁被讀取完畢,s鎖立即被釋放。2 排它 x 鎖 僅允許乙個事務封鎖此頁 其他任何事務必須等到x鎖被釋放才能對該頁進行訪問 x鎖一直到事務結束才能被釋放。3 更新 u 鎖 用來...

作為程式設計師的苦惱

我是乙個工作三年多的程式設計師,做了三年多的開發工作,也有很多感悟。因為本人喜歡網際網路,也喜歡站在 產品 的角度思考問題,考慮行業狀態,產品的盈利模式,產品的ui設計,產品的功能規劃等等。但是我發現我的想法越多,在工作中,我反而越痛苦。當我對產品的想法與 客戶 的想法衝突時,往往是以我的妥協結束,...

網路程式設計師需要掌握的10個有用的Perl模組

2006 05 12 10 10 26 廣告 你可能已經知道,perl綜合典藏網 comprehensive perl archive network,cpan 上有很多現成的perl模組,能夠讓開發人員高效地完成常見任務。cpan在網路程式設計上提供的資源尤其如此,它有數千個模組,從一般的 伺服器...