创建和应用标签
标签通常通过编辑器应用; 但是,你也可以通过脚本应用标签。在应用于游戏对象之前,必须通过“ 标记和图层” 窗口创建任何自定义标记。
在编辑器中设置标签
选择一个或多个游戏对象后,你可以从检查器中选择一个标记。游戏对象总是带有一个标签; 默认情况下,游戏对象将被标记为 未标记 。你也可以通过选择 “添加标签…” 移动到“ 标签和图层” 窗口 ; 但是,请务必注意,这只会将你带到“ 标签和图层” 窗口。你创建的任何标记都不会自动应用于游戏对象。 ** ** **
通过脚本设置标签
你可以通过代码直接更改游戏对象标签。请务必注意,你必须提供当前标记列表中的标记; 如果你提供尚未创建的标记,则会导致错误。
如其他示例中所详述的,使用一系列 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 创建标签。选择 - 按钮将删除当前突出显示的标签。请注意,以这种方式,标记将立即显示为 “(已删除)” ,并在下次重新加载项目时将完全删除。
从窗口右上角选择齿轮/齿轮将允许你重置所有自定义选项。这将立即删除所有自定义标记,以及你在 排序图层 和 图层 下可能具有的任何自定义图层。