1. 高亮選擇在Scene面板右上角的Gizmo下拉列表中,可以通過設置Selection Outline選項決定是否在選中物體時顯示邊緣高亮的標識。
2.Pixel Perfect Camera在攝像機上掛載Pixel Perfect Camera組件能夠使2D像素風格的游戲畫面更加整潔清晰。此組件需要使用Package Manager安裝2D Pixel Perfect包。
3.以Y軸為依據進行Sprite排序對于2D游戲,將Transparency Sort Mode (Edit > Project Settings > Graphics ) 設置為Custom Axis,然后設置Transparency Sort Axis,場景中的Sprite可以根據Y軸進行排序。如下圖所示,當設置為(0,1,0)時,Y坐標相對較大的Sprite排在Y坐標相對較小的Sprite之下,當設置為(0,-1,0)時,則相反。
4. 延遲銷毀游戲對象默認情況下,使用Destroy()方法會立即銷毀游戲對象,如果想延遲一段時間再銷毀,可在此方法中傳遞一個時間參數(shù),如下:
5. 快速新建基于自定義Shader的材質在Project面板中選中一個自定義Shader,右鍵選擇新建材質(Create>Material),則材質默認使用的著色器為z之前選擇的Shader,同時材質名稱為Shader的名稱。
6. 腳本不掛載到游戲對象執(zhí)行通常情況下,新建的腳本要掛載到游戲對象上才能運行,如果在腳本中的方法前使用[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)],可以不用掛載到任何游戲對象上即可在程序運行時執(zhí)行此方法,方便在在程序初始化前做一些額外的初始化工作。如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 4 | [RuntimeInitializeOnLoadMethod ( RuntimeInitializeLoadType.AfterSceneLoad ) ]
public static void DoSomething ( )
{
Debug.Log ( "It's the start of the game" ) ;
}
|
7. 保存程序運行時組件屬性的改變在程序運行時改變組件的各屬性值,當停止運行后,這些改變將重置為編輯狀態(tài)下的數(shù)值,。程序運行時改變了組件的屬性值,可以點擊組件右上角的齒輪按鈕,選擇Copy Component命令,停止播放后,在相同的組件上,執(zhí)行Paste Component Value,從而能夠保存在運行時對該組件做出的改變。
8. 獲取一個隨機布爾值我們知道Random.value能夠返回0~1之間的隨機數(shù),所以讓此隨機數(shù)與0.5f進行比較,就能夠獲取一個隨機的布爾值True或者False,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
| bool trueOrFalse = ( Random. value > 0.5 f ) ;
|
9. 使用Struct代替Class如果數(shù)據結構僅保存了有限的幾個數(shù)值變量,可以考慮使用struct代替Class,因為Class實例由垃圾回收機制來保證內存的回收處理;而struct變量使用完后立即自動解除內存分配。
10. Visual Studio 自動語句補全
當使用Visual Studio進行代碼編寫時,可雙擊Tab鍵來輔助完成像if、for、switch等語句的補全。
11.協(xié)程嵌套在一個協(xié)程里開啟另外一個協(xié)程,可使用以下方法:
[AppleScript] 純文本查看 復制代碼
01 02 03 04 05 06 07 08 09 10 11 12 13 | void Start ( )
{
StartCoroutine ( FirstCo ( ) ) ;
}
IEnumerator FirstCo ( )
{
yield return StartCoroutine ( SecondCo ( ) ) ;
}
IEnumerator SecondCo ( )
{
yield return 0 ;
}
|
12.腳本變量參與動畫制作使用工具還可以改變腳本的變量。
13/14. Animation窗口快捷鍵在Animation窗口中,按下Ctrl+A,所有關鍵幀將集中顯示在窗口中;選擇某些關鍵幀,按下F鍵,可將它們居中顯示在窗口中;按下C鍵,可以在曲線視圖和關鍵幀視圖間切換;按下K鍵添加關鍵幀。
15. 反向播放動畫在Animator窗口中,設置動畫的Speed屬性為-1可使動畫片段反向播放。
16.快速比較距離將兩點之間的距離與一個固定距離進行比較時,可使兩點相減然后取平方(即sqrMagnitude),然后用該值與某個距離值的平方進行比較。不建議使用Vector3.Distance方法獲取兩點之間距離,然后與給定的距離值進行比較。因為Vector3.Distance(a,b) 相當于 (a-b).magnitude,即求平方后開根,而sqrMagnitude方法省去了求平方根的操作,所以比magnitude執(zhí)行快。
建議:
[AppleScript] 純文本查看 復制代碼
1 2 | if ( ( pointA - pointB ) .sqrMagnitude < dist * dist )
{
}
|
不建議:
[AppleScript] 純文本查看 復制代碼
1 2 | if ( Vector 3. Distance ( pointA , pointB ) < dist )
{
}
|
17. 使用TextMeshPro使用TextMeshPro能夠獲得更多的文字控制自由度,并且能夠有效防止文字邊緣模糊。如下圖所示,第一行文字通過"Create > UI > Text"命令創(chuàng)建,第二行文字通過"Create > UI > TextMeshPro - Text"命令創(chuàng)建。
18.在Inspector面板中顯示私有變量將私有變量標記為SerializeField,可在Inspector面板中將其顯示。
[AppleScript] 純文本查看 復制代碼
1 | [SerializeField]
private int myNumber = 20 ;
|
19. 在Inspector面板中隱藏公有變量如果不希望在Inspector面板中顯示公有變量,可將其標記為[HideInInspector]。
[AppleScript] 純文本查看 復制代碼
1 | [HideInInspector]
public int myNumber = 20 ;
|
20. 變量重命名后繼續(xù)保持值當變量重命名后,如果希望繼續(xù)保留其數(shù)值,可使用FormerlySerializedAs,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 | [FormerlySerializedAs ( "hp" ) ]
public int myNumber = 20 ;
|
需要引用命名空間:
[AppleScript] 純文本查看 復制代碼
| using UnityEngine.Serialization;
|
21.使用文件夾快捷方式可將經常訪問的文件夾的快捷方式拖入Project面板中,雙擊快捷方式可快速打開此目錄。
22/23.F與Shift+F選擇游戲對象,按下F鍵,可將Scene的視口中央移動到該游戲對象處;按下Shift+F,可將視口與該游戲對象鎖定,即無論如何移動游戲對象,視口中央始終跟隨此游戲對象。
24.對齊Scene與Game視圖在Hierarchy面板中選擇攝像機,按下Ctrl+Shift+F,可將攝像機移動到能夠呈現(xiàn)Scene窗口中內容的位置。
25. CompareTag方法當對游戲對象的Tag進行比對時,從性能考慮,可使用CompareTag方法,不建議使用雙等號進行判斷。
建議:
[AppleScript] 純文本查看 復制代碼
1 2 3 | if ( gameObject.CompareTag ( "Enemy" ) )
{
}
|
不建議:
[AppleScript] 純文本查看 復制代碼
1 2 3 | if ( gameObject. tag = = "Enemy" )
{
}
|
26.使用空游戲對象作為分隔符在Hierarchy面板中,可以使用名稱中帶有分隔符的空游戲對象進行組織管理。
27. 查找含有某組件的游戲對象如果需要查找掛載了某個組件的游戲對象,直接在Hierarchy面板的搜索框中輸入組件名稱即可,需要注意組件名稱中的空格,比如搜索”MeshCollider“而不是”Mesh Collider“。
28. 查找某種類型的資源在Project面板中的搜索框中輸入"t:"+資源類型,可以過濾顯示某種類型的資源,比如輸入"t:scene",會過濾出所有場景文件,輸入"t:texture",則會顯示所有貼圖。
29. 移動代碼行在Visual Studio中,使用快捷鍵Alt+上下鍵,可以在代碼塊中快速上移/下移光標所在的代碼行,不用復制粘貼。
30.快速查看組件文檔點擊組件右上角的文檔按鈕,可快速打開關于當前組件的文檔。建議下載離線文檔,以便更加快速打開文檔,如果沒有下載,Unity將打開在線文檔。
31.文檔版本歷史在Unity文檔中點擊Documentation Version鏈接,可查看不同版本的文檔。
32. 展開/折疊所有節(jié)點在Hierarchy面板中,按下Alt鍵,鼠標左鍵點擊樹形節(jié)點,可展開/折疊當前節(jié)點下的所有子節(jié)點。
33.保存編輯器窗口布局Unity窗口布局可自定義,調整完畢以后,如果希望以后繼續(xù)沿用此布局,點擊編輯器右上角的Layout下拉列表,選擇命令Save Layout,可將當前窗口布局進行保存。
34+35. 改變編輯器顏色選擇命令Editor > Preferences命令,可自定義編輯器當前主題的顏色。
修改Playmode tint的顏色值,可以改變編輯器在運行模式時的顏色,以提醒開發(fā)者此時為運行模式。
36.開關場景特效在Scene面板頂部的圖片下拉列表中,可選擇開關某種類型的特效。
37.MenuItem屬性要在編輯器的菜單欄中選擇執(zhí)行編寫的函數(shù),可在函數(shù)前添加MenuItem屬性,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 4 | [MenuItem ( "MyMenu/Do Something" ) ]
static void DoSomething ( )
{
}
|
38.ContextMenu使用ContextMenu屬性標記函數(shù),能夠在腳本所在的上下文菜單中調用,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 4 | [ContextMenu ( "Do Something" ) ]
void DoSomething ( )
{
}
|
39+40. 隱藏和鎖定層在編輯器右上角的Layers下拉列表中,點擊對應層右側的眼睛按鈕,可以隱藏或顯示某個層上的對象;點擊鎖按鈕,可對某個層進行鎖定或解鎖,當被鎖定后,該層上的所有對象將不能被選擇。
41.層子菜單當創(chuàng)建層時,使用斜杠符進行路徑式命名可以為層添加子菜單,可以更好地組織項目。
42. 使用Scripting Define Symbols定義腳本在不同的目標平臺下添加 Scripting Define Symbols(Project Settings > Player > Scripting Define Symbols),以分號分隔,可以將這些符號像使用Unity內置標簽一樣用作#if指令的條件。
43+44.顏色在使用Color控件的滴管工具進行顏色選擇時,可以拾取Unity編輯器之外的顏色。
在顏色屬性之間也可以使用右鍵命令進行復制粘貼。
45.最大化窗口使用快捷鍵Shift+空格鍵,可以快速最大化鼠標所在的窗口,而不用選擇窗口右上角的Maximize命令
46. 序列化Struct和Class在數(shù)據類型Struct和Class聲明前使用[System.Serializable],可以將其顯示在Inspector面板中進行賦值。
47.碰撞矩陣在 Edit > Project Settings... > Physics 中,通過設置Layer Collision Matrix 可以決定能夠互相碰撞的層。
48.Collider相互作用矩陣
49. 數(shù)值輸入在Inspector面板中涉及到數(shù)值輸入的字段,不僅可以直接輸入數(shù)據,還可以在輸入框中輸入數(shù)學表達式,按下回車后Unity會將計算結果填充到輸入框中。
50.鎖定Inspector點擊Inspector右上角的鎖定按鈕,或在上下文菜單中選擇Lock命令,可以將當前選中游戲對象的Inspector面板鎖定。然后選擇Add Tab > Inspector命令,添加一個Inspector,這樣能夠方便在兩個游戲對象之間互相拷貝組件數(shù)據。
51.Inspector調試模式在Inspector面板右上角的下拉菜單中,選擇Debug命令,啟動調試模式,此時將顯示組件包含的所有變量,包括私有變量,當運行編輯器時,可以實時查看各組件所有變量的變化。
52.高亮顯示Debug.Log對應的游戲對象當使用Debug.Log方法輸出信息時,可將gameObject作為此方法的第二個參數(shù),當程序運行時,點擊Console面板中對應的輸出信息,可在Hierarchy面板中高亮顯示掛載了此腳本的游戲對象。
[AppleScript] 純文本查看 復制代碼
1 2 3 | void Start ( )
{
Debug.Log ( "this is a message" , gameObject ) ;
}
|
53.風格化Debug.Log的輸出信息當Debug.Log方法的輸出消息是字符串時,可以使用富文本標記來強調內容。如下代碼所示:
[AppleScript] 純文本查看 復制代碼
| Debug.Log ( "<color=red>Fatal error:</color> AssetBundle not found" ) ;
|
輸出效果:
54.繪制調試數(shù)據當變量隨著時間的推進而改變時,可使用AnimationCurve實例在程序運行時繪制此數(shù)據,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 4 5 | public AnimationCurve plot = new AnimationCurve ( ) ;
void Update ( )
{
float value = Mathf.Sin ( Time.time ) ;
plot.AddKey ( Time.realtimeSinceStartup , value ) ;
}
|
返回Unity編輯器,運行程序,點擊plot屬性,此時會隨著時間動態(tài)繪制數(shù)據的變化情況,如下圖所示:
55.快速新建腳本并掛載到游戲對象上選擇游戲對象,在Inspector面板上點擊Add Component按鈕,在搜索框中輸入新建的腳本名稱并回車,可新建腳本并掛載到目標游戲對象上,雙擊腳本名稱進行腳本編寫。
56.導入第三方項目文件Unity能夠讀取部分第三方創(chuàng)作工具保存的項目文件,比如Photoshop的PSD,Blender的源文件等,不需要從這些軟件導出中轉文件格式,比如Jpg、FBX等。
57.導入后保留PSD文件的圖層結構將PSD文件另存為PSB格式,將其導入Unity后可保留文件圖層結構,此時需要在Package Manager中安裝2D PSD Importer,并且在文件的導入屬性中設置Texture Type 為Sprite (2D and UI)。
58+59.為游戲對象指定/自定義圖標點擊游戲對象Inspector面板左上角的下拉菜單,可為游戲對象指定一個特定顏色的標識,這對空游戲對象的可視化也比較有用。點擊Other...按鈕,可以用自己的圖片來進行標識。
60/61.顯示/隱藏Gizmo點擊Scene面板右上角的Gizmo下拉列表,可以選擇顯示或隱藏某類組件的圖標和Gizmo標識;也可點擊Game面板右上角的Gizmo按鈕,顯示或隱藏所有資源的圖標和Gizmo。
62.字符串拼接可使用StringBuilder進行字符串的拼接,不要使用字符串相加的形式,因為這樣會帶來額外的內存垃圾。如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 | StringBuilder myStr = new StringBuilder ( ) ;
myStr.Append ( "Hello" ) .Append ( "The" ) .Append ( "World" ) ;
|
不建議:
[AppleScript] 純文本查看 復制代碼
| string myStr = "Hello" + "the" + "world" ;
|
使用StringBuilder需要引用命名空間System.Text。
63.使用ScriptableObjects管理游戲數(shù)據對于游戲數(shù)據比如武器、成就等,可使用ScriptableObjects在編輯器中進行有效組織。如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 4 5 6 7 | using UnityEngine;[ / color][ / size][ / font ]
[ font = 微軟雅黑][size = 3 ][color = rgb ( 26 , 26 , 26 ) ][CreateAssetMenu ( fileName = "New Item" , menuName = "Item" ) ]
public class NewBehaviourScript : ScriptableObject
{
public string ItemName;
public int ItemLevel;
public Texture 2 D ItemIcon;
}
|
64.編輯器播放時修改腳本后的處理選擇 Edit > Preferences > General 命令,在Script Changes While Playing中,可以設置編輯器在播放狀態(tài)下如果腳本發(fā)生改變后的處理,比如停止播放重新編譯等。
65.自定義窗口將類繼承自EditorWindow,可以添加自定義窗口,在此基礎上編寫一些命令和工具,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
01 02 03 04 05 06 07 08 09 10 | using UnityEngine;
using UnityEditor;
public class ExampleWindow : EditorWindow
{
[MenuItem ( "Window/Example" ) ]
public static void ShowWindow ( )
{
GetWindow < ExampleWindow > ( "Example" ) ;
}
}
|
執(zhí)行效果:
66.自定義Inspector也可對Inspector進行自定義,添加一些控件。如下代碼所示:
[AppleScript] 純文本查看 復制代碼
01 02 03 04 05 06 07 08 09 10 11 | using UnityEngine;
using UnityEditor;
[CustomEditor ( typeof ( Sphere ) ) ]
public class SphereEditor : Editor
{
public override void OnInspectorGUI ( )
{
GUILayout.Label ( "自定義Inspector" ) ;
GUILayout.Button ( "確定" ) ;
}
}
|
執(zhí)行效果:
67.工具快捷鍵使用快捷鍵Q、W、E、R、T、Y切換移動、旋轉、縮放等工具。
68.使用RectTransform工具縮放3D物體RectTransform工具一般用于縮放2D物體,對3D物體使用該工具可以在某個二維平面對其進行縮放,這取決于物體與視口的關系。
69+70+71.吸附按下Ctrl鍵對游戲對象進行移動、旋轉、縮放,將以步進的形式進行操作,選擇Editor > Snap Settings...命令,可設置步進大小。
按下V鍵,在游戲對象上選擇頂點進行拖放,將以此頂點為基礎,把游戲對象吸附到其它頂點的位置。
72. 管理程序集在Project面板中選擇Create > Assembly Definition 命令,創(chuàng)建程序集文件,然后將其拖放到指定的文件夾中,定義腳本依賴關系,可以確保腳本更改后,只會重新生成必需的程序集,從而減少編譯時間。
73.WaitForSecondsRealtime當時間縮放為0時(即Time.timeScale=0f),waitForSeconds方法將不會停止等待,后續(xù)代碼也不會執(zhí)行,此時可使用WaitForSecondsRealtime方法,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 | Time.timeScale = 0 f;
yield return new WaitForSecondsRealtime ( 1 f ) ;
|
74+75.緩存組件引用當某組件需要被頻繁訪問時,可在初始化時預先獲取該組件的引用,從而避免在訪問時由于重復獲取引起的性能開銷。
[AppleScript] 純文本查看 復制代碼
01 02 03 04 05 06 07 08 09 10 | private Rigidbody rb;
void Start ( )
{
rb = GetComponent < Rigidbody > ( ) ;
}
void Update ( )
{
rb.AddForce ( 0 f , -2 f , 0 f ) ;
}
|
同樣的情況,也不要在使用Camera.main獲取攝像機組件,尤其避免使用類似以下方法:
[AppleScript] 純文本查看 復制代碼
| Camera cam = GameObject.FindGameObjectWithTag ( "MainCamera" ) .GetComponent < Camera > ( ) ;
|
這樣會帶來更大的性能消耗。
76.字符串性能優(yōu)化如果某字符串在整個應用過程中不會改變且被頻繁使用,可將其存儲在靜態(tài)只讀變量中,從而節(jié)省內存分配,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 4 5 | static readonly string Fire 1 = "Fire1" ;
void Update ( )
{
Input.GetAxis ( Fire 1 ) ;
}
|
不建議:
[AppleScript] 純文本查看 復制代碼
1 2 3 | void Update ( )
{
Input.GetAxis ( "Fire1" ) ;
}
|
77/78/79/80.方便使用的元數(shù)據為變量添加一些屬性可使它們在Inspector面板中更容易被使用。在變量前添加Range屬性可將其限定在某個范圍內使用滑塊進行調節(jié),如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 | [Range ( 0 f , 10 f ) ]
public float speed = 1 f;
|
執(zhí)行效果:
兩個變量聲明之間加入[Space]可在Inspector中添加一個空行;添加Header可在Inspector面板中加入一段文字,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 | [Header ( "Player Settings" ) ][ / color][ / size][ / font ]
[ font = 微軟雅黑][size = 3 ][color = rgb ( 26 , 26 , 26 ) ]
public float speed = 1 f;
public int size = 10 ;
|
執(zhí)行效果:
在變量前加入Tooltip,當鼠標懸停在Inspector面板中的變量上時,可顯示關于此變量的說明,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 | [Tooltip ( "移動速度" ) ]
public float speed = 1 f;
|
執(zhí)行效果:
81.在Unit編輯器中訪問Asset StoreAsset Store可在Unity編輯器和網頁瀏覽器中訪問。(此條有充數(shù)嫌疑)
82.合并場景在Project面板中,將一個場景文件拖到另外一個上,可將場景進行合并。
83/84.創(chuàng)建游戲對象/數(shù)組元素副本快捷鍵選擇一個游戲對象,使用快捷鍵Ctrl+D可快速創(chuàng)建該游戲對象的副本,同樣的方法可創(chuàng)建數(shù)組元素的副本。
85.組件預設當完成某個組件的屬性設置后,可點擊組件右上角的預設按鈕,將當前屬性設置保存為預設,方便后續(xù)進行組件設置時使用。
86.遍歷游戲對象所有子物體可使用foreach循環(huán)遍歷游戲對象的所有子物體,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 | foreach ( Transform child in transform )
{
Debug.Log ( child. name ) ;
}
|
87.通過腳本改變游戲對象在Hierarchy中的順序使用transform.SetSiblingIndex方法可以設置游戲對象在Hierarchy面板中的順序,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
| transform.SetSiblingIndex ( 1 ) ;
|
以上代碼實現(xiàn)在游戲運行時,設置游戲對象在Hierarchy面板中的順序為同級節(jié)點中的第二個。
88.保存選擇狀態(tài)當選擇了多個游戲對象后,可在 Edit > Selection 的子菜單中選擇一個Save Selection項,暫存當前選擇狀態(tài)。選擇Load Selection+對應的序號,即可恢復某個選擇狀態(tài)。此方法對跨節(jié)點選擇多個對象的情況非常適用,這樣將不必依次展開節(jié)點重新進行查找選擇。
89.#region 和 #endregion使用#region 和 #endregion可以將兩者之間包含的代碼折疊,方便閱讀。
90.通過腳本暫定編輯器播放使用EditorApplication.isPaused可通過代碼在編輯器播放時將其暫停,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 3 4 5 6 | void Update ( )
{
if ( Time.time > = 10 f )
{
EditorApplication.isPaused = true ;
}
}
|
需要引用命名空間UnityEditor。
91.逐幀查看程序運行點擊暫停按鈕右側的步進(Step)按鈕,可以在程序運行時逐幀查看程序運行狀態(tài)。
92/93/94.查看游戲性能統(tǒng)計點擊Game窗口右上角的Stats按鈕可以查看游戲性能統(tǒng)計數(shù)據,如幀率、批處理等指標。
查看更加詳細的分析數(shù)據,可使用Window > Analysis > Profiler工具;使用Profiler.BeginSample和Profiler.EndSample方法可在Profiler中查看函數(shù)的資源使用情況,如下代碼所示:
[AppleScript] 純文本查看 復制代碼
1 2 | Profiler.BeginSample ( "expensive" ) ;
CalculateSomething ( ) ;
Profiler.EndSample ( ) ;
|
需要引入UnityEngine.Profiling命名空間。
95.彈出預覽窗口通常情況下,項目資源在Inspector面板底部均有一個預覽窗口。鼠標右鍵點擊預覽窗口頂部,可將該窗口彈出,作為獨立窗口,放置在編輯器的任意位置。
96.測試游戲時靜音點擊Game窗口右上角的Mute Audio按鈕,可在編輯器播放時將所有聲音關閉。
97.InvokeRepeating方法InvokeRepeating能夠按照一定的時間間隔反復執(zhí)行某個函數(shù),若不使用CancelInvoke方法,InvokeRepeating將持續(xù)執(zhí)行,即使將方法所在的腳本關閉。
98.Frame Debugger使用Frame Debugger(Window > Analysis > Frame Debugger)可以查看每一幀的渲染過程。
99.Physics Debugger使用Physics Debugger(Window > Analysis > Physics Debugger)可以查看碰撞引起的異常,當開啟Collision Geometry選項后,場景中所有游戲對象的碰撞體都將被繪制出來,而不用依次選擇游戲對象進行檢查。如下圖所示,球體因為添加了不正確的Box Collider,在物理碰撞時必然不能達到預期的表現(xiàn)效果。
100.不要做MMORPG游戲!這應該是作者被MMORPG長期折磨的結果,此處純搞笑。
文章來源:蠻牛教育講師 邵偉老師