Unity基礎小貼士

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;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章