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

Object.FindObjectOfType

提出更改建议

成功!

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

关闭

提交失败

您的更改建议因某些原因而无法提交。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换至手册
已过时 Object.FindObjectOfType 已废弃。请改用 Object.FindFirstObjectByType,如果找到任何实例是可接受的,可以使用速度更快的 Object.FindAnyObjectByType。

声明

public static T FindObjectOfType();
已过时 Object.FindObjectOfType 已废弃。请改用 Object.FindFirstObjectByType,如果找到任何实例是可接受的,可以使用速度更快的 Object.FindAnyObjectByType。

声明

public static T FindObjectOfType(bool includeInactive);
已过时 Object.FindObjectOfType 已废弃。请改用 Object.FindFirstObjectByType,如果找到任何实例是可接受的,可以使用速度更快的 Object.FindAnyObjectByType。

声明

public static Object FindObjectOfType(Type type);
已过时 Object.FindObjectOfType 已废弃。请改用 Object.FindFirstObjectByType,如果找到任何实例是可接受的,可以使用速度更快的 Object.FindAnyObjectByType。

声明

public static Object FindObjectOfType(Type type, bool includeInactive);

参数

类型 要查找的对象的类型。

返回

T Object 与指定类型匹配的第一个活动加载对象。如果没有 Object 匹配该类型,则返回 null。

说明

返回 Type type 的第一个活动加载对象。

Object.FindObjectOfType 不会返回资源(网格、纹理、预制件,...)或非活动对象。它不会返回已设置 HideFlags.DontSave 的对象。

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

已过时:此函数已过时,请使用 Object.FindFirstObjectByType 作为直接替代,或者如果指定类型的任何对象都是可接受的,请使用速度更快的 Object.FindAnyObjectByType

另请参阅:Object.FindFirstObjectByTypeObject.FindAnyObjectByType、Object.FindObjectsOfType。

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

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