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

Object.FindObjectsOfType

Группа методов устарела

Declaration

Obsolete public static Object[] FindObjectsOfType(Type type);
Obsolete public static Object[] FindObjectsOfType(Type type, bool includeInactive);
Obsolete public static T[] FindObjectsOfType(bool includeInactive);
Obsolete public static T[] FindObjectsOfType();

Параметры

Параметр Описание
тип Тип объекта для поиска.
includeInactive Если true, то включаются также компоненты, прикрепленные к неактивному GameObjects.

Возвращаемое значение

Object[] Массив найденных объектов, соответствующих указанному типу.

Описание

Получает список всех загруженных объектов типа type.

Это не возвращает ассеты (такие как меши, текстуры или префабы), или объекты с набором HideFlags.DontSave. Объекты, прикрепленные к неактивному GameObjects, включаются только если includeInactive установлено на true. Используйте Resources.FindObjectsOfTypeAll, чтобы избежать этих ограничений.

В Редакторе, это по умолчанию ищет представление Scene. Если вы хотите найти объект в стадии Префаб, см. StageUtility APIs.

Примечание: Эта функция очень медленна. Не рекомендуется использовать эту функцию каждый кадр. В большинстве случаев вы можете использовать вместо этого шаблон singleton.

Устарело: Эта функция устарела, используйте вместо нее Object.FindObjectsByType. Эта замена позволяет указать, сортировать ли полученный массив. FindObjectsOfType() всегда сортирует по InstanceID, так что вызов FindObjectsByType(FindObjectsSortMode.InstanceID) дает идентичные результаты. Если вы указываете не сортировать массив, функция выполняется значительно быстрее, однако порядок результатов может меняться между вызовами.

using UnityEngine;

// Ten GameObjects are created and have TextMesh and // CanvasRenderer components added. // When the game runs press the Space key to display the // number of TextMesh and CanvasRenderer components.

public class ScriptExample : MonoBehaviour { private const int count = 10;

void Start() { var gameObjects = new GameObject[count]; var expectedTextMeshObjects = new TextMesh[count]; var expectedCanvasObjects = new CanvasRenderer[count];

for (var i = 0; i < count; ++i) { gameObjects[i] = new GameObject(); expectedTextMeshObjects[i] = gameObjects[i].AddComponent<TextMesh>(); expectedCanvasObjects[i] = gameObjects[i].AddComponent<CanvasRenderer>(); } }

void Update() { if (Input.GetKeyDown(KeyCode.Space)) { var foundCanvasObjects = FindObjectsOfType<CanvasRenderer>(); var foundTextMeshObjects = FindObjectsOfType(typeof(TextMesh)); Debug.Log(foundCanvasObjects + " : " + foundCanvasObjects.Length); Debug.Log(foundTextMeshObjects + " : " + foundTextMeshObjects.Length); } } }

Дополнительные ресурсы: ,Object.FindObjectsByType,.