tag | 在搜索 GameObjects 时所针对的标签的名称。 |
返回标记为 tag
的活动 GameObject 的列表。如果未找到 GameObject,则返回空数组。
标签在使用前必须在标签管理器中加以声明。如果此标签不存在,或者传递了空字符串或 null
作为标签,则将抛出 UnityException
。
// Instantiates respawnPrefab at the location
// of all game objects tagged "Respawn".
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public GameObject respawnPrefab;
public GameObject[] respawns;
void Start()
{
if (respawns == null)
respawns = GameObject.FindGameObjectsWithTag("Respawn");
foreach (GameObject respawn in respawns)
{
Instantiate(respawnPrefab, respawn.transform.position, respawn.transform.rotation);
}
}
}
另一个示例:
// Find the name of the closest enemy
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public GameObject FindClosestEnemy()
{
GameObject[] gos;
gos = GameObject.FindGameObjectsWithTag("Enemy");
GameObject closest = null;
float distance = Mathf.Infinity;
Vector3 position = transform.position;
foreach (GameObject go in gos)
{
Vector3 diff = go.transform.position - position;
float curDistance = diff.sqrMagnitude;
if (curDistance < distance)
{
closest = go;
distance = curDistance;
}
}
return closest;
}
}
另一个示例,测试空数组:
// Search for game objects with a tag that is not used
function Start () {
var gos : GameObject[];
gos = GameObject.FindGameObjectsWithTag("fred");
if (gos.length == 0) {
Debug.Log("No game objects are tagged with fred");
}
}