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

Object.FindAnyObjectByType

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

声明

public static T FindAnyObjectByType();

声明

public static T FindAnyObjectByType(FindObjectsInactive findObjectsInactive);

声明

public static Object FindAnyObjectByType(Type type);

声明

public static Object FindAnyObjectByType(Type type, FindObjectsInactive findObjectsInactive);

参数

type 要查找的对象类型。
findObjectsInactive 是否包含附加到非活动游戏对象的组件。如果您未指定此参数,则此函数不会在结果中包含非活动对象。

返回值

T 返回与指定类型匹配的任意活动加载对象。如果没有任何对象与指定类型匹配,则返回 null。

描述

检索类型为 type 的任何活动加载对象。

Object.FindAnyObjectByType 不会返回资源(例如网格、纹理或预制体)或非活动对象。它也不会返回设置了 HideFlags.DontSave 的对象。

注意:此函数返回的对象在调用之间不保证相同,但它始终是指定类型。如果您不需要特定的对象实例,则此函数比 Object.FindFirstObjectByType 更快。

另请参阅:Object.FindFirstObjectByTypeObject.FindObjectsByType

using UnityEngine;
using System.Collections;

// Search for any 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)FindAnyObjectByType(typeof(TextMesh)); if (texture) Debug.Log("TextMesh object found: " + texture.name); else Debug.Log("No TextMesh object could be found");

CanvasRenderer canvas = FindAnyObjectByType<CanvasRenderer>(); if (canvas) Debug.Log("CanvasRenderer object found: " + canvas.name); else Debug.Log("No CanvasRenderer object could be found"); } }