建立和應用標籤

標籤通常通過編輯器應用; 但是,你也可以通過指令碼應用標籤。在應用於遊戲物件之前,必須通過“ 標記和圖層” 視窗建立任何自定義標記。

在編輯器中設定標籤

選擇一個或多個遊戲物件後,你可以從檢查器中選擇一個標記。遊戲物件總是帶有一個標籤; 預設情況下,遊戲物件將被標記為 未標記 。你也可以通過選擇 “新增標籤…” 移動到“ 標籤和圖層” 視窗 ; 但是,請務必注意,這隻會將你帶到“ 標籤和圖層” 視窗。你建立的任何標記都不會自動應用於遊戲物件。 ** ** **

可以在檢查器視窗中的遊戲物件名稱正下方找到標籤下拉選單。

通過指令碼設定標籤

你可以通過程式碼直接更改遊戲物件標籤。請務必注意,你必須提供當前標記列表中的標記; 如果你提供尚未建立的標記,則會導致錯誤。

如其他示例中所詳述的,使用一系列 static string 變數而不是手動編寫每個標籤可以確保一致性和可靠性。

以下指令碼演示瞭如何使用 static string 引用更改一系列遊戲物件標記以確保一致性。請注意,每個 static string 表示已在“ 標籤和圖層” 視窗中建立的標籤

using UnityEngine;

public class Tagging : MonoBehaviour
{
    static string tagUntagged = "Untagged";
    static string tagPlayer = "Player";
    static string tagEnemy = "Enemy";

    /// <summary>Represents the player character. This game object should 
    /// be linked up via the inspector.</summary>
    public GameObject player;
    /// <summary>Represents all the enemy characters. All enemies should 
    /// be added to the array via the inspector.</summary>
    public GameObject[] enemy;

    void Start ()
    {
        // We ensure that the game object this script is attached to
        // is left untagged by using the default "Untagged" tag.
        gameObject.tag = tagUntagged;

        // We ensure the player has the player tag.
        player.tag = tagUntagged;

        // We loop through the enemy array to ensure they are all tagged.
        for(int i = 0; i < enemy.Length; i++)
        {
            enemy[i].tag = tagEnemy;
        }
    }
}

建立自定義標籤

無論你是通過 Inspector 還是通過指令碼設定標籤,都必須在使用前通過“ 標籤和圖層” 視窗宣告標籤。你可以從遊戲物件標籤下拉選單中選擇 “新增標籤…” 來訪問此視窗。或者,你可以在“ 編輯”>專案設定>標籤和圖層 下找到該視窗。

標籤可以包含空格和標點符號。

只需選擇 + 按鈕,輸入所需名稱並選擇 Save 建立標籤。選擇 - 按鈕將刪除當前突出顯示的標籤。請注意,以這種方式,標記將立即顯示為 “(已刪除)” ,並在下次重新載入專案時將完全刪除。

從視窗右上角選擇齒輪/齒輪將允許你重置所有自定義選項。這將立即刪除所有自定義標記,以及你在 排序圖層圖層 下可能具有的任何自定義圖層