|
1. 高亮選擇 在Scene面板右上角的Gizmo下拉列表中,可以通過設(shè)置Selection Outline選項決定是否在選中物體時顯示邊緣高亮的標(biāo)識。
2.Pixel Perfect Camera 在攝像機上掛載Pixel Perfect Camera組件能夠使2D像素風(fēng)格的游戲畫面更加整潔清晰。此組件需要使用Package Manager安裝2D Pixel Perfect包。
3.以Y軸為依據(jù)進行Sprite排序 對于2D游戲,將Transparency Sort Mode (Edit > Project Settings > Graphics ) 設(shè)置為Custom Axis,然后設(shè)置Transparency Sort Axis,場景中的Sprite可以根據(jù)Y軸進行排序。如下圖所示,當(dāng)設(shè)置為(0,1,0)時,Y坐標(biāo)相對較大的Sprite排在Y坐標(biāo)相對較小的Sprite之下,當(dāng)設(shè)置為(0,-1,0)時,則相反。
4. 延遲銷毀游戲?qū)ο?/strong> 默認(rèn)情況下,使用Destroy()方法會立即銷毀游戲?qū)ο?,如果想延遲一段時間再銷毀,可在此方法中傳遞一個時間參數(shù),如下: [AppleScript] 純文本查看 復(fù)制代碼
5. 快速新建基于自定義Shader的材質(zhì) 在Project面板中選中一個自定義Shader,右鍵選擇新建材質(zhì)(Create>Material),則材質(zhì)默認(rèn)使用的著色器為z之前選擇的Shader,同時材質(zhì)名稱為Shader的名稱。 通常情況下,新建的腳本要掛載到游戲?qū)ο笊喜拍苓\行,如果在腳本中的方法前使用[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)],可以不用掛載到任何游戲?qū)ο笊霞纯稍诔绦蜻\行時執(zhí)行此方法,方便在在程序初始化前做一些額外的初始化工作。如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
7. 保存程序運行時組件屬性的改變 在程序運行時改變組件的各屬性值,當(dāng)停止運行后,這些改變將重置為編輯狀態(tài)下的數(shù)值,。程序運行時改變了組件的屬性值,可以點擊組件右上角的齒輪按鈕,選擇Copy Component命令,停止播放后,在相同的組件上,執(zhí)行Paste Component Value,從而能夠保存在運行時對該組件做出的改變。
我們知道Random.value能夠返回0~1之間的隨機數(shù),所以讓此隨機數(shù)與0.5f進行比較,就能夠獲取一個隨機的布爾值True或者False,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
9. 使用Struct代替Class 如果數(shù)據(jù)結(jié)構(gòu)僅保存了有限的幾個數(shù)值變量,可以考慮使用struct代替Class,因為Class實例由垃圾回收機制來保證內(nèi)存的回收處理;而struct變量使用完后立即自動解除內(nèi)存分配。
當(dāng)使用Visual Studio進行代碼編寫時,可雙擊Tab鍵來輔助完成像if、for、switch等語句的補全。 在一個協(xié)程里開啟另外一個協(xié)程,可使用以下方法: [AppleScript] 純文本查看 復(fù)制代碼
使用工具還可以改變腳本的變量。
13/14. Animation窗口快捷鍵 在Animation窗口中,按下Ctrl+A,所有關(guān)鍵幀將集中顯示在窗口中;選擇某些關(guān)鍵幀,按下F鍵,可將它們居中顯示在窗口中;按下C鍵,可以在曲線視圖和關(guān)鍵幀視圖間切換;按下K鍵添加關(guān)鍵幀。 在Animator窗口中,設(shè)置動畫的Speed屬性為-1可使動畫片段反向播放。
將兩點之間的距離與一個固定距離進行比較時,可使兩點相減然后取平方(即sqrMagnitude),然后用該值與某個距離值的平方進行比較。不建議使用Vector3.Distance方法獲取兩點之間距離,然后與給定的距離值進行比較。因為Vector3.Distance(a,b) 相當(dāng)于 (a-b).magnitude,即求平方后開根,而sqrMagnitude方法省去了求平方根的操作,所以比magnitude執(zhí)行快。 建議: [AppleScript] 純文本查看 復(fù)制代碼
不建議: [AppleScript] 純文本查看 復(fù)制代碼
17. 使用TextMeshPro 使用TextMeshPro能夠獲得更多的文字控制自由度,并且能夠有效防止文字邊緣模糊。如下圖所示,第一行文字通過"Create > UI > Text"命令創(chuàng)建,第二行文字通過"Create > UI > TextMeshPro - Text"命令創(chuàng)建。
將私有變量標(biāo)記為SerializeField,可在Inspector面板中將其顯示。 [AppleScript] 純文本查看 復(fù)制代碼
19. 在Inspector面板中隱藏公有變量 如果不希望在Inspector面板中顯示公有變量,可將其標(biāo)記為[HideInInspector]。 [AppleScript] 純文本查看 復(fù)制代碼
20. 變量重命名后繼續(xù)保持值 當(dāng)變量重命名后,如果希望繼續(xù)保留其數(shù)值,可使用FormerlySerializedAs,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
需要引用命名空間: [AppleScript] 純文本查看 復(fù)制代碼
21.使用文件夾快捷方式 可將經(jīng)常訪問的文件夾的快捷方式拖入Project面板中,雙擊快捷方式可快速打開此目錄。
22/23.F與Shift+F 選擇游戲?qū)ο?,按下F鍵,可將Scene的視口中央移動到該游戲?qū)ο筇?;按下Shift+F,可將視口與該游戲?qū)ο箧i定,即無論如何移動游戲對象,視口中央始終跟隨此游戲?qū)ο蟆?/font> 在Hierarchy面板中選擇攝像機,按下Ctrl+Shift+F,可將攝像機移動到能夠呈現(xiàn)Scene窗口中內(nèi)容的位置。
25. CompareTag方法 當(dāng)對游戲?qū)ο蟮腡ag進行比對時,從性能考慮,可使用CompareTag方法,不建議使用雙等號進行判斷。 建議: [AppleScript] 純文本查看 復(fù)制代碼
不建議: [AppleScript] 純文本查看 復(fù)制代碼
26.使用空游戲?qū)ο笞鳛榉指舴?/strong> 在Hierarchy面板中,可以使用名稱中帶有分隔符的空游戲?qū)ο筮M行組織管理。
27. 查找含有某組件的游戲?qū)ο?/strong> 如果需要查找掛載了某個組件的游戲?qū)ο螅苯釉贖ierarchy面板的搜索框中輸入組件名稱即可,需要注意組件名稱中的空格,比如搜索”MeshCollider“而不是”Mesh Collider“。
28. 查找某種類型的資源 在Project面板中的搜索框中輸入"t:"+資源類型,可以過濾顯示某種類型的資源,比如輸入"t:scene",會過濾出所有場景文件,輸入"t:texture",則會顯示所有貼圖。
29. 移動代碼行 在Visual Studio中,使用快捷鍵Alt+上下鍵,可以在代碼塊中快速上移/下移光標(biāo)所在的代碼行,不用復(fù)制粘貼。 點擊組件右上角的文檔按鈕,可快速打開關(guān)于當(dāng)前組件的文檔。建議下載離線文檔,以便更加快速打開文檔,如果沒有下載,Unity將打開在線文檔。
31.文檔版本歷史 在Unity文檔中點擊Documentation Version鏈接,可查看不同版本的文檔。
32. 展開/折疊所有節(jié)點 在Hierarchy面板中,按下Alt鍵,鼠標(biāo)左鍵點擊樹形節(jié)點,可展開/折疊當(dāng)前節(jié)點下的所有子節(jié)點。
33.保存編輯器窗口布局 Unity窗口布局可自定義,調(diào)整完畢以后,如果希望以后繼續(xù)沿用此布局,點擊編輯器右上角的Layout下拉列表,選擇命令Save Layout,可將當(dāng)前窗口布局進行保存。 選擇命令Editor > Preferences命令,可自定義編輯器當(dāng)前主題的顏色。
修改Playmode tint的顏色值,可以改變編輯器在運行模式時的顏色,以提醒開發(fā)者此時為運行模式。 在Scene面板頂部的圖片下拉列表中,可選擇開關(guān)某種類型的特效。
37.MenuItem屬性 要在編輯器的菜單欄中選擇執(zhí)行編寫的函數(shù),可在函數(shù)前添加MenuItem屬性,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
38.ContextMenu 使用ContextMenu屬性標(biāo)記函數(shù),能夠在腳本所在的上下文菜單中調(diào)用,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
39+40. 隱藏和鎖定層 在編輯器右上角的Layers下拉列表中,點擊對應(yīng)層右側(cè)的眼睛按鈕,可以隱藏或顯示某個層上的對象;點擊鎖按鈕,可對某個層進行鎖定或解鎖,當(dāng)被鎖定后,該層上的所有對象將不能被選擇。
41.層子菜單 當(dāng)創(chuàng)建層時,使用斜杠符進行路徑式命名可以為層添加子菜單,可以更好地組織項目。
42. 使用Scripting Define Symbols定義腳本 在不同的目標(biāo)平臺下添加 Scripting Define Symbols(Project Settings > Player > Scripting Define Symbols),以分號分隔,可以將這些符號像使用Unity內(nèi)置標(biāo)簽一樣用作#if指令的條件。 在使用Color控件的滴管工具進行顏色選擇時,可以拾取Unity編輯器之外的顏色。
在顏色屬性之間也可以使用右鍵命令進行復(fù)制粘貼。
45.最大化窗口 使用快捷鍵Shift+空格鍵,可以快速最大化鼠標(biāo)所在的窗口,而不用選擇窗口右上角的Maximize命令 在數(shù)據(jù)類型Struct和Class聲明前使用[System.Serializable],可以將其顯示在Inspector面板中進行賦值。 在 Edit > Project Settings... > Physics 中,通過設(shè)置Layer Collision Matrix 可以決定能夠互相碰撞的層。
48.Collider相互作用矩陣 當(dāng)兩個對象發(fā)生碰撞時,會發(fā)送不同的碰撞事件,如OnTriggerEnter、OnCollisionEnter等等,這取決于具體的碰撞體設(shè)置,下表列出了不同類型的碰撞體發(fā)生碰撞時所能發(fā)出的事件類型。詳情可參考Unity 官方文檔:https://docs./Manual/CollidersOverview.html
49. 數(shù)值輸入 在Inspector面板中涉及到數(shù)值輸入的字段,不僅可以直接輸入數(shù)據(jù),還可以在輸入框中輸入數(shù)學(xué)表達(dá)式,按下回車后Unity會將計算結(jié)果填充到輸入框中。
50.鎖定Inspector 點擊Inspector右上角的鎖定按鈕,或在上下文菜單中選擇Lock命令,可以將當(dāng)前選中游戲?qū)ο蟮腎nspector面板鎖定。然后選擇Add Tab > Inspector命令,添加一個Inspector,這樣能夠方便在兩個游戲?qū)ο笾g互相拷貝組件數(shù)據(jù)。
51.Inspector調(diào)試模式 在Inspector面板右上角的下拉菜單中,選擇Debug命令,啟動調(diào)試模式,此時將顯示組件包含的所有變量,包括私有變量,當(dāng)運行編輯器時,可以實時查看各組件所有變量的變化。 當(dāng)使用Debug.Log方法輸出信息時,可將gameObject作為此方法的第二個參數(shù),當(dāng)程序運行時,點擊Console面板中對應(yīng)的輸出信息,可在Hierarchy面板中高亮顯示掛載了此腳本的游戲?qū)ο蟆?/font> [AppleScript] 純文本查看 復(fù)制代碼
53.風(fēng)格化Debug.Log的輸出信息 當(dāng)Debug.Log方法的輸出消息是字符串時,可以使用富文本標(biāo)記來強調(diào)內(nèi)容。如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
輸出效果:
54.繪制調(diào)試數(shù)據(jù) 當(dāng)變量隨著時間的推進而改變時,可使用AnimationCurve實例在程序運行時繪制此數(shù)據(jù),如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
返回Unity編輯器,運行程序,點擊plot屬性,此時會隨著時間動態(tài)繪制數(shù)據(jù)的變化情況,如下圖所示:
55.快速新建腳本并掛載到游戲?qū)ο笊?/strong> 選擇游戲?qū)ο?,在Inspector面板上點擊Add Component按鈕,在搜索框中輸入新建的腳本名稱并回車,可新建腳本并掛載到目標(biāo)游戲?qū)ο笊?,雙擊腳本名稱進行腳本編寫。 Unity能夠讀取部分第三方創(chuàng)作工具保存的項目文件,比如Photoshop的PSD,Blender的源文件等,不需要從這些軟件導(dǎo)出中轉(zhuǎn)文件格式,比如Jpg、FBX等。 將PSD文件另存為PSB格式,將其導(dǎo)入Unity后可保留文件圖層結(jié)構(gòu),此時需要在Package Manager中安裝2D PSD Importer,并且在文件的導(dǎo)入屬性中設(shè)置Texture Type 為Sprite (2D and UI)。
點擊游戲?qū)ο驣nspector面板左上角的下拉菜單,可為游戲?qū)ο笾付ㄒ粋€特定顏色的標(biāo)識,這對空游戲?qū)ο蟮目梢暬脖容^有用。點擊Other...按鈕,可以用自己的圖片來進行標(biāo)識。
點擊Scene面板右上角的Gizmo下拉列表,可以選擇顯示或隱藏某類組件的圖標(biāo)和Gizmo標(biāo)識;也可點擊Game面板右上角的Gizmo按鈕,顯示或隱藏所有資源的圖標(biāo)和Gizmo。
62.字符串拼接 可使用StringBuilder進行字符串的拼接,不要使用字符串相加的形式,因為這樣會帶來額外的內(nèi)存垃圾。如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
不建議: [AppleScript] 純文本查看 復(fù)制代碼
使用StringBuilder需要引用命名空間System.Text。 對于游戲數(shù)據(jù)比如武器、成就等,可使用ScriptableObjects在編輯器中進行有效組織。如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
64.編輯器播放時修改腳本后的處理 選擇 Edit > Preferences > General 命令,在Script Changes While Playing中,可以設(shè)置編輯器在播放狀態(tài)下如果腳本發(fā)生改變后的處理,比如停止播放重新編譯等。
65.自定義窗口 將類繼承自EditorWindow,可以添加自定義窗口,在此基礎(chǔ)上編寫一些命令和工具,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
執(zhí)行效果:
66.自定義Inspector 也可對Inspector進行自定義,添加一些控件。如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
執(zhí)行效果:
67.工具快捷鍵 使用快捷鍵Q、W、E、R、T、Y切換移動、旋轉(zhuǎn)、縮放等工具。 RectTransform工具一般用于縮放2D物體,對3D物體使用該工具可以在某個二維平面對其進行縮放,這取決于物體與視口的關(guān)系。
69+70+71.吸附 按下Ctrl鍵對游戲?qū)ο筮M行移動、旋轉(zhuǎn)、縮放,將以步進的形式進行操作,選擇Editor > Snap Settings...命令,可設(shè)置步進大小。
按下V鍵,在游戲?qū)ο笊线x擇頂點進行拖放,將以此頂點為基礎(chǔ),把游戲?qū)ο笪降狡渌旤c的位置。 在Project面板中選擇Create > Assembly Definition 命令,創(chuàng)建程序集文件,然后將其拖放到指定的文件夾中,定義腳本依賴關(guān)系,可以確保腳本更改后,只會重新生成必需的程序集,從而減少編譯時間。 當(dāng)時間縮放為0時(即Time.timeScale=0f),waitForSeconds方法將不會停止等待,后續(xù)代碼也不會執(zhí)行,此時可使用WaitForSecondsRealtime方法,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
74+75.緩存組件引用 當(dāng)某組件需要被頻繁訪問時,可在初始化時預(yù)先獲取該組件的引用,從而避免在訪問時由于重復(fù)獲取引起的性能開銷。 [AppleScript] 純文本查看 復(fù)制代碼
同樣的情況,也不要在使用Camera.main獲取攝像機組件,尤其避免使用類似以下方法: [AppleScript] 純文本查看 復(fù)制代碼
這樣會帶來更大的性能消耗。 如果某字符串在整個應(yīng)用過程中不會改變且被頻繁使用,可將其存儲在靜態(tài)只讀變量中,從而節(jié)省內(nèi)存分配,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
不建議: [AppleScript] 純文本查看 復(fù)制代碼
77/78/79/80.方便使用的元數(shù)據(jù) 為變量添加一些屬性可使它們在Inspector面板中更容易被使用。在變量前添加Range屬性可將其限定在某個范圍內(nèi)使用滑塊進行調(diào)節(jié),如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
執(zhí)行效果:
兩個變量聲明之間加入[Space]可在Inspector中添加一個空行;添加Header可在Inspector面板中加入一段文字,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
執(zhí)行效果:
在變量前加入Tooltip,當(dāng)鼠標(biāo)懸停在Inspector面板中的變量上時,可顯示關(guān)于此變量的說明,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
執(zhí)行效果:
81.在Unit編輯器中訪問Asset Store Asset Store可在Unity編輯器和網(wǎng)頁瀏覽器中訪問。(此條有充數(shù)嫌疑) 在Project面板中,將一個場景文件拖到另外一個上,可將場景進行合并。 選擇一個游戲?qū)ο?,使用快捷鍵Ctrl+D可快速創(chuàng)建該游戲?qū)ο蟮母北?,同樣的方法可?chuàng)建數(shù)組元素的副本。 當(dāng)完成某個組件的屬性設(shè)置后,可點擊組件右上角的預(yù)設(shè)按鈕,將當(dāng)前屬性設(shè)置保存為預(yù)設(shè),方便后續(xù)進行組件設(shè)置時使用。
86.遍歷游戲?qū)ο笏凶游矬w 可使用foreach循環(huán)遍歷游戲?qū)ο蟮乃凶游矬w,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
87.通過腳本改變游戲?qū)ο笤贖ierarchy中的順序 使用transform.SetSiblingIndex方法可以設(shè)置游戲?qū)ο笤贖ierarchy面板中的順序,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
以上代碼實現(xiàn)在游戲運行時,設(shè)置游戲?qū)ο笤贖ierarchy面板中的順序為同級節(jié)點中的第二個。 當(dāng)選擇了多個游戲?qū)ο蠛?,可?Edit > Selection 的子菜單中選擇一個Save Selection項,暫存當(dāng)前選擇狀態(tài)。選擇Load Selection+對應(yīng)的序號,即可恢復(fù)某個選擇狀態(tài)。此方法對跨節(jié)點選擇多個對象的情況非常適用,這樣將不必依次展開節(jié)點重新進行查找選擇。
89.#region 和 #endregion 使用#region 和 #endregion可以將兩者之間包含的代碼折疊,方便閱讀。
使用EditorApplication.isPaused可通過代碼在編輯器播放時將其暫停,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
需要引用命名空間UnityEditor。 點擊暫停按鈕右側(cè)的步進(Step)按鈕,可以在程序運行時逐幀查看程序運行狀態(tài)。
92/93/94.查看游戲性能統(tǒng)計 點擊Game窗口右上角的Stats按鈕可以查看游戲性能統(tǒng)計數(shù)據(jù),如幀率、批處理等指標(biāo)。
查看更加詳細(xì)的分析數(shù)據(jù),可使用Window > Analysis > Profiler工具;使用Profiler.BeginSample和Profiler.EndSample方法可在Profiler中查看函數(shù)的資源使用情況,如下代碼所示: [AppleScript] 純文本查看 復(fù)制代碼
需要引入UnityEngine.Profiling命名空間。
95.彈出預(yù)覽窗口 通常情況下,項目資源在Inspector面板底部均有一個預(yù)覽窗口。鼠標(biāo)右鍵點擊預(yù)覽窗口頂部,可將該窗口彈出,作為獨立窗口,放置在編輯器的任意位置。
96.測試游戲時靜音 點擊Game窗口右上角的Mute Audio按鈕,可在編輯器播放時將所有聲音關(guān)閉。
97.InvokeRepeating方法 InvokeRepeating能夠按照一定的時間間隔反復(fù)執(zhí)行某個函數(shù),若不使用CancelInvoke方法,InvokeRepeating將持續(xù)執(zhí)行,即使將方法所在的腳本關(guān)閉。 使用Frame Debugger(Window > Analysis > Frame Debugger)可以查看每一幀的渲染過程。 使用Physics Debugger(Window > Analysis > Physics Debugger)可以查看碰撞引起的異常,當(dāng)開啟Collision Geometry選項后,場景中所有游戲?qū)ο蟮呐鲎搀w都將被繪制出來,而不用依次選擇游戲?qū)ο筮M行檢查。如下圖所示,球體因為添加了不正確的Box Collider,在物理碰撞時必然不能達(dá)到預(yù)期的表現(xiàn)效果。
100.不要做MMORPG游戲! 這應(yīng)該是作者被MMORPG長期折磨的結(jié)果,此處純搞笑。 文章來源:蠻牛教育講師 邵偉老師 |
|
|