IT培訓-高端面授IT培訓機構
          云和教育:云和數據集團高端IT職業教育品牌
          • 國家級
            全民數字素養與技能培訓基地
          • 河南省
            第一批產教融合型企業建設培育單位
          • 鄭州市
            數字技能人才(碼農)培養評價聯盟

          為游戲開發者總結的15個Unity3D實用小技巧

          • 發布時間:
            2019-04-13
          • 版權所有:
            云和教育
          • 分享:

          Unity是一款非常流行的游戲開發軟件。它的功能十分強大,能夠適應不同的游戲開發要求。游戲開發人員可以使用Unity創建任意類型的游戲,從世界級的RPG游戲到最受歡迎的增強現實游戲Pokemon Go。

          配圖1 Unity開發建議和技巧.jpg

          Unity不論是對獨立游戲開發人員或者共同完成某一個項目的的大型團隊而言,它都是一個完美工具。但是由于其復雜性,使得Unity可能難以管理。今天,我們就為游戲開發者總結出了15條Unity開發建議和技巧,來幫助你更好地使用Unity。

          一、Unity 使用技巧

          配圖2 Unity3D使用技巧.jpg

          1、避免Assets分支

          所有的Asset都應該只有一個唯一的版本。如果你真的需要一個分支版本的Prefab、Scene或是Mesh,那你要制定一個非常清晰的流程,來確定哪個是正確的版本。錯誤的分支應該起一個特別的名字,例如雙下劃線前綴:__MainScene_Backup。Prefab版本分支需要一個特別的流程來保證安全 。

          2、Unity死機未保存場景

          當你在Unity中編輯場景,突然死機時,可以在項目文件目錄中找到Temp文件夾,雙擊文件夾,找到_Backupscenes文件夾,把后綴為.backup的文件后綴改為.unity,然后拖進Unity的Project界面里面,這樣就可以還原死機前場景最后情況。

          3、考慮使用外部的關卡編輯工具

          Unity不是一個完美的關卡編輯器。例如,我們使用TuDee來創建3D Tile-Based的游戲,這使我們可以獲得對Tile友好的工具的益處(網格約束,90度倍數的旋轉,2D視圖,快速Tile選擇等)。從一個XML文件來實例化Prefab也很簡單。

          4、考慮把關卡保存為XML,而非scene

          這是一種非常奇異的技術:

          ●它能夠讓你不必每一個場景都設置一遍;

          他能夠載入的更快(假設大多數對象都是在場景之間共享的)。

          ●它讓場景的版本號合并變的簡單(就算是Unity的新的文本格式的Scene,也因為數據太多,而讓版本號合并變的不切實際)。

          ●它能夠使得在關卡之間保持數據更簡便。

          5、考慮編寫通用的自己定義Inspector代碼

          實現自己定義的Inspector是非常直截了當的。可是Unity的系統有非常多的缺點:

          ●它不支持從繼承中獲益;

          ●它不同意定義字段級別的Inspector組件,而僅僅能是class類型級別。

          你能夠通過從根本上又一次實現Inspector系統來處理這些問題。通過一些反射機制的小技巧,他并不像看上去那么看,文章底部(日后另作翻譯)將提供很多其它的實現細節。

          配圖3 Unity 使用技巧.jpg

          關于場景組織

          6、使用命名的空Game Object來做場景文件夾

          細致的組織場景,就能夠方便的找到不論什么對象。

          7、把控制對象和場景文件夾(空Game Objec)放在原點(0,0。0)

          假設位置對于這個對象不重要。那么就把他放到原點。這樣你就不會遇到處理Local Space和World Space的麻煩,代碼也會更簡潔。

          8、盡量降低使用GUI組件的offset

          通常應該由控件的Layout父對象來控制Offset;它們不應該依賴它們的爺爺節點的位置。位移不應該互相抵消來達到正確顯示的目的。

          基本上要防止了下列情況的發生:

          父容器被放到了(100,-50),而字節點應該在(10,10)。所以把他放到(90。60)[父節點的相對位置]。

          這樣的錯誤通常發生在容器不可見時。

          9、把世界的地面放在Y=0

          這樣能夠更方便的把對象放到地面上。而且在游戲邏輯中。能夠把世界作為2D空間來處理(假設合適的話),比如AI和物理模擬。

          10、使游戲能夠從每一個Scene啟動

          這將大大的減少測試的時間。為了達到全部場景可執行,你須要做兩件事:

          ●首先,假設須要前面場景執行產生的一些數據,那么要模擬出它們。

          ●其次。生成在場景切換時必要保存的對象。能夠是這樣:

          myObject = FindMyObjectInScene(); if (myObjet == null){ ? myObject = SpawnMyObject();}

          Unity 使用技巧

          配圖4 Unity 使用技巧.jpg

          關于美術

          11、把角色和地面物體的中心點(Pivot)放在底部。不要放在中間

          這能夠使你方便的把角色或者其它對象精確的放到地板上。假設合適的話,它也可能使得游戲邏輯、AI、甚至是物理使用2D邏輯來表現3D。

          12、統一全部的模型的面朝向(Z軸正向或者反向)

          對于全部具有面朝向的對象(比如角色)都應該遵守這一條。在統一面朝向的前提下,非常多算法能夠簡化。

          13、在開始就把Scale搞正確

          請美術把全部導入的縮放系數設置為1。而且把他們的Transform的Scale設置為1,1,1。能夠使用一個參考對象(一個Unity的Cube)來做縮放比較。為你的游戲選擇一個世界的單位系數。然后堅持使用它。

          14、為GUI組件或者手動創建的粒子制作一個兩個面的平面模型

          設置這個平面面朝向Z軸正向,可能簡化Billboard和GUI創建。

          15、制作并使用測試資源

          ●為SkyBox創建帶文字的方形貼圖;

          ●一個網格(Grid);

          ●為Shader測試使用各種顏色的平面:白色,黑色,50%灰度,紅,綠,藍。紫,黃。青;

          ●為Shader測試使用漸進色:黑到白,紅到綠。紅到藍。綠到藍;

          ●黑白格子;

          ●平滑的或者粗糙的法線貼圖;

          ●一套用來高速搭建場景的燈光(使用Prefa)。

          Unity 使用技巧

          配圖5 Unity 使用技巧.jpg

          總結

          游戲開發是一個復雜的過程,需要開發者掌握許多的技能。以上技巧可以使你的游戲開發過程更加完善。另外,上述技巧并不詳盡,你需要不斷學習。如果你還有其他的Unity開發技巧,歡迎在留言與大家分享。