建立和應用標籤
標籤通常通過編輯器應用; 但是,你也可以通過指令碼應用標籤。在應用於遊戲物件之前,必須通過“ 標記和圖層” 視窗建立任何自定義標記。
在編輯器中設定標籤
選擇一個或多個遊戲物件後,你可以從檢查器中選擇一個標記。遊戲物件總是帶有一個標籤; 預設情況下,遊戲物件將被標記為 未標記 。你也可以通過選擇 “新增標籤…” 移動到“ 標籤和圖層” 視窗 ; 但是,請務必注意,這隻會將你帶到“ 標籤和圖層” 視窗。你建立的任何標記都不會自動應用於遊戲物件。 ** ** **
通過指令碼設定標籤
你可以通過程式碼直接更改遊戲物件標籤。請務必注意,你必須提供當前標記列表中的標記; 如果你提供尚未建立的標記,則會導致錯誤。
如其他示例中所詳述的,使用一系列 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 建立標籤。選擇 - 按鈕將刪除當前突出顯示的標籤。請注意,以這種方式,標記將立即顯示為 “(已刪除)” ,並在下次重新載入專案時將完全刪除。
從視窗右上角選擇齒輪/齒輪將允許你重置所有自定義選項。這將立即刪除所有自定義標記,以及你在 排序圖層 和 圖層 下可能具有的任何自定義圖層。