版本: Unity 6 (6000.0)
语言英语
  • C#

GameObject.FindGameObjectsWithTag

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们确实会阅读用户提出的每项更改建议,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请 <a>稍后再试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public static GameObject[] FindGameObjectsWithTag(string tag);

参数

tag 要搜索的标记名称 GameObjects

描述

检索一个包含所有使用指定标记标记的活动 GameObject 的数组。如果没有任何 GameObject 具有该标记,则返回一个空数组。

必须在使用标签之前在标签管理器中声明标签。如果标签不存在,或者如果提供了空字符串或 null 作为 tag 参数,则将抛出 UnityException

// Instantiates respawnPrefab at the location
// of all GameObjects 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; } }

另一个示例,测试空数组

using UnityEngine;

// Search for GameObjects with a tag that is not used

public class Example : MonoBehaviour { void Start() { GameObject[] gameObjects; gameObjects = GameObject.FindGameObjectsWithTag("Enemy");

if (gameObjects.Length == 0) { Debug.Log("No GameObjects are tagged with 'Enemy'"); } } }