版本: Unity 6 (6000.0)
语言英语
  • C#
方法组已过时

Object.FindObjectsOfType

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册
已过时 Object.FindObjectsOfType 已弃用。请改用 Object.FindObjectsByType,它允许您决定是否需要对结果进行排序。FindObjectsOfType 会按 InstanceID 对结果进行排序,但如果您不需要此排序,则使用 FindObjectSortMode.None 会快得多。

声明

public static Object[] FindObjectsOfType(Type type);
已过时 Object.FindObjectsOfType 已弃用。请改用 Object.FindObjectsByType,它允许您决定是否需要对结果进行排序。FindObjectsOfType 会按 InstanceID 对结果进行排序,但如果您不需要此排序,则使用 FindObjectSortMode.None 会快得多。

声明

public static Object[] FindObjectsOfType(Type type, bool includeInactive);
已过时 Object.FindObjectsOfType 已弃用。请改用 Object.FindObjectsByType,它允许您决定是否需要对结果进行排序。FindObjectsOfType 会按 InstanceID 对结果进行排序,但如果您不需要此排序,则使用 FindObjectSortMode.None 会快得多。

声明

public static T[] FindObjectsOfType(bool includeInactive);
已过时 Object.FindObjectsOfType 已弃用。请改用 Object.FindObjectsByType,它允许您决定是否需要对结果进行排序。FindObjectsOfType 会按 InstanceID 对结果进行排序,但如果您不需要此排序,则使用 FindObjectSortMode.None 会快得多。

声明

public static T[] FindObjectsOfType();

参数

type 要查找的对象类型。
includeInactive 如果为 true,则还包括附加到非活动游戏对象的组件。

返回值

Object[] 找到的与指定类型匹配的对象数组。

描述

获取类型为 type 的所有已加载对象的列表。

这不会返回资源(例如网格、纹理或预制体),或设置了 HideFlags.DontSave 的对象。仅当 inactiveObjects 设置为 true 时,才会包括附加到非活动游戏对象的组件。使用 Resources.FindObjectsOfTypeAll 可避免这些限制。

在编辑器中,此函数默认搜索场景视图。如果要在预制体阶段查找对象,请参阅 StageUtility API。

注意:此函数速度非常慢。不建议每帧都使用此函数。在大多数情况下,您可以改用单例模式。

已过时:此函数已过时,请改用 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