type | 要查找的对象类型。 |
findObjectsInactive | 是否包含附加到非活动 GameObjects 的组件。如果您未指定此参数,此函数不会将非活动对象包含在结果中。 |
T 返回与指定类型匹配的第一个活动加载对象。如果没有任何对象与指定类型匹配,则返回 null。
检索类型为 type
的第一个活动加载对象。
Object.FindFirstObjectByType 不会返回资源(例如网格、纹理或预制件)或非活动对象。它也不会返回设置了 HideFlags.DontSave 的对象。
注意: 此函数非常占用资源。最佳做法是不要在每一帧都使用此函数,而是大多数情况下使用单例模式。或者,如果您只需要匹配对象的任何实例,而不是第一个实例,您可以使用更快的 Object.FindAnyObjectByType
另请参阅: Object.FindAnyObjectByType, Object.FindObjectsByType.
using UnityEngine; using System.Collections;
// Search for the first object of Types TextMesh and CanvasRenderer, // if found print the names, else print a message // that says that it was not found. public class ExampleClass : MonoBehaviour { void Start() { TextMesh texture = (TextMesh)FindFirstObjectByType(typeof(TextMesh)); if (texture) Debug.Log("TextMesh object found: " + texture.name); else Debug.Log("No TextMesh object could be found");
CanvasRenderer canvas = FindFirstObjectByType<CanvasRenderer>(); if (canvas) Debug.Log("CanvasRenderer object found: " + canvas.name); else Debug.Log("No CanvasRenderer object could be found"); } }