1、通常情況下,新建的腳本要掛載到遊戲對象上才能運行,如果在腳本中的方法前使用
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)],
可以不用掛載到任何遊戲對象上即可在程序運行時執行此方法,
方便在在程序初始化前做一些額外的初始化工作。如下代碼所示:
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
public static void DoSomething()
{
Debug.Log("It's the start of the game");
}
2、在Inspector面板中顯示私有變量,將私有變量標記爲SerializeField,可在Inspector面板中將其顯示。
[SerializeField]
private int myNumber = 20;
3、在Inspector面板中隱藏公有變量,如果不希望在Inspector面板中顯示公有變量,可將其標記爲[HideInInspector]。
[HideInInspector]
public int myNumber = 20;
4、使用文件夾快捷方式
可將經常訪問的文件夾的快捷方式拖入Project面板中,雙擊快捷方式可快速打開此目錄。
5、選擇遊戲對象,按下F鍵,可將Scene的視口中央移動到該遊戲對象處;
按下Shift+F,可將視口與該遊戲對象鎖定,即無論如何移動遊戲對象,視口中央始終跟隨此遊戲對象。
6、CompareTag方法
當對遊戲對象的Tag進行比對時,從性能考慮,可使用CompareTag方法,不建議使用雙等號進行判斷。
建議:
if (gameObject.CompareTag("Enemy")) { }
不建議:
if (gameObject.tag == "Enemy") { }
7、查找含有某組件的遊戲對象
如果需要查找掛載了某個組件的遊戲對象,直接在Hierarchy面板的搜索框中輸入組件名稱即可,需要注意組件名稱中的空格,比如搜索”MeshCollider“而不是”Mesh Collider“。
8、 查找某種類型的資源
在Project面板中的搜索框中輸入"t:"+資源類型,可以過濾顯示某種類型的資源,比如輸入"t:scene",會過濾出所有場景文件,輸入"t:texture",則會顯示所有貼圖。
9、移動代碼行
在Visual Studio中,使用快捷鍵Alt+上下鍵,可以在代碼塊中快速上移/下移光標所在的代碼行,不用複製粘貼。
10、.快速查看組件文檔
點擊組件右上角的文檔按鈕,可快速打開關於當前組件的文檔。建議下載離線文檔,以便更加快速打開文檔,如果沒有下載,Unity將打開在線文檔。
11、展開/摺疊所有節點
在Hierarchy面板中,按下Alt鍵,鼠標左鍵點擊樹形節點,可展開/摺疊當前節點下的所有子節點。
12、MenuItem屬性
要在編輯器的菜單欄中選擇執行編寫的函數,可在函數前添加MenuItem屬性,如下代碼所示:
[MenuItem("MyMenu/Do Something")]
static void DoSomething()
{
}
13、ContextMenu
使用ContextMenu屬性標記函數,能夠在腳本所在的上下文菜單中調用,如下代碼所示:
[ContextMenu("Do Something")]
void DoSomething()
{
}
14、 隱藏和鎖定層
在編輯器右上角的Layers下拉列表中,點擊對應層右側的眼睛按鈕,可以隱藏或顯示某個層上的對象;點擊鎖按鈕,可對某個層進行鎖定或解鎖,當被鎖定後,該層上的所有對象將不能被選擇。
15、層子菜單
當創建層時,使用斜槓符進行路徑式命名可以爲層添加子菜單,可以更好地組織項目。
16、使用Scripting Define Symbols定義腳本
在不同的目標平臺下添加 Scripting Define Symbols(Project Settings > Player > Scripting Define Symbols),以分號分隔,可以將這些符號像使用Unity內置標籤一樣用作#if指令的條件。
17、顏色
在使用Color控件的滴管工具進行顏色選擇時,可以拾取Unity編輯器之外的顏色。
在顏色屬性之間也可以使用右鍵命令進行復制粘貼。
18、 序列化Struct和Class
在數據類型Struct和Class聲明前使用[System.Serializable],可以將其顯示在Inspector面板中進行賦值。
19、碰撞矩陣
在 Edit > Project Settings... > Physics 中,通過設置Layer Collision Matrix 可以決定能夠互相碰撞的層。
20、鎖定Inspector
點擊Inspector右上角的鎖定按鈕,或在上下文菜單中選擇Lock命令,可以將當前選中游戲對象的Inspector面板鎖定。然後選擇Add Tab > Inspector命令,添加一個Inspector,這樣能夠方便在兩個遊戲對象之間互相拷貝組件數據。
21、Inspector調試模式
在Inspector面板右上角的下拉菜單中,選擇Debug命令,啓動調試模式,此時將顯示組件包含的所有變量,包括私有變量,當運行編輯器時,可以實時查看各組件所有變量的變化。
22、高亮顯示Debug.Log對應的遊戲對象
當使用Debug.Log方法輸出信息時,可將gameObject作爲此方法的第二個參數,當程序運行時,點擊Console面板中對應的輸出信息,可在Hierarchy面板中高亮顯示掛載了此腳本的遊戲對象。
Debug.Log("coming!!!!", gameObject);
23、風格化Debug.Log的輸出信息
當Debug.Log方法的輸出消息是字符串時,可以使用富文本標記來強調內容。如下代碼所示:
Debug.Log("<color=red>Fatal error:</color>222222");
24、方便使用的元數據
爲變量添加一些屬性可使它們在Inspector面板中更容易被使用。在變量前添加Range屬性可將其限定在某個範圍內使用滑塊進行調節,如下代碼所示:
[Range(0f,10f)]
public float speed;
兩個變量聲明之間加入[Space]可在Inspector中添加一個空行;添加Header可在Inspector面板中加入一段文字,如下代碼所示:
[Header("Player Settings")]
public int size = 10;
在變量前加入Tooltip,當鼠標懸停在Inspector面板中的變量上時,可顯示關於此變量的說明,如下代碼所示:
[Tooltip("移動速度")]
public float teat = 1f;