Version: 2018.4
LanguageEnglish
  • C#

Object.FindObjectsOfType

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public static Object[] FindObjectsOfType(Type type);

Parameters

type The type of object to find.

Returns

Object[] The array of objects found matching the type specified.

Description

Returns a list of all active loaded objects of Type type.

It will return no assets (meshes, textures, prefabs, ...) or inactive objects. Will not return objects that have HideFlags.DontSave set. Use Resources.FindObjectsOfTypeAll to avoid these limitations.

Please note that this function is very slow. It is not recommended to use this function every frame. In most cases you can use the singleton pattern instead.

using UnityEngine;

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

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

void Start() { var gameObjects = new GameObject[count]; var expectedObjects = new TextMesh[count];

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

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