Unity 6.3
0 онлайн 58 гостей 3 в системе
Вход

GameObject.FindGameObjectsWithTag

Declaration

public static GameObject[] FindGameObjectsWithTag(string tag);

Параметры

Параметр Описание
метка Имя тега для поиска GameObjects.

Описание

Получает массив всех активных GameObjects, помеченных указанной меткой. Возвращает пустое массиво, если ни один GameObjects не имеет метки.

Метки должны быть объявлены в менеджере тегов, прежде чем их можно будет использовать. UnityException будет брошена, если тег не существует или если пуста строка или null поставляется как tag параметр.

// 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'"); } } }