# FindObjectOfType

> Returns the first active loaded object of Type type.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## FindObjectOfType\<T>()

Returns the first active loaded object of Type `type`.

> **Warning:**
>
> **Deprecated.** Object.FindObjectOfType has been deprecated. Use Object.FindAnyObjectByType instead.

```csharp
public static T FindObjectOfType<T>() where T : Object
```

### Returns

| Type | Description                                                                                                               |
| ---- | ------------------------------------------------------------------------------------------------------------------------- |
| T    | **Object** The first active loaded object that matches the specified type. It returns null if no Object matches the type. |

### Remarks

Object.FindObjectOfType will not return Assets (meshes, textures, prefabs, ...) or inactive objects. It will not return an object that has [HideFlags.DontSave](/engine/6000.7/script-reference/unityengine/hideflags/dontsave.md) set.

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.

**Obsolete**: This function is obsolete, use [Object.FindFirstObjectByType](/engine/6000.7/script-reference/unityengine/object/findfirstobjectbytype.md) as a direct replacement or the faster [Object.FindAnyObjectByType](/engine/6000.7/script-reference/unityengine/object/findanyobjectbytype.md) if any object of the specified type is acceptable.

See Also: [Object.FindFirstObjectByType](/engine/6000.7/script-reference/unityengine/object/findfirstobjectbytype.md), [Object.FindAnyObjectByType](/engine/6000.7/script-reference/unityengine/object/findanyobjectbytype.md), [Object.FindObjectsOfType](/engine/6000.7/script-reference/unityengine/object/findobjectsoftype.md).

### Examples

```csharp
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");
    }
}
```

## FindObjectOfType\<T>(bool)

Returns the first active loaded object of Type `type`.

> **Warning:**
>
> **Deprecated.** Object.FindObjectOfType has been deprecated. Use Object.FindAnyObjectByType instead.

```csharp
public static T FindObjectOfType<T>(bool includeInactive) where T : Object
```

### Parameters

**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Whether to include components attached to inactive GameObjects. If you don't specify this parameter, this function doesn't include inactive objects in the results.

### Returns

| Type | Description                                                                                                               |
| ---- | ------------------------------------------------------------------------------------------------------------------------- |
| T    | **Object** The first active loaded object that matches the specified type. It returns null if no Object matches the type. |

### Remarks

Object.FindObjectOfType will not return Assets (meshes, textures, prefabs, ...) or inactive objects. It will not return an object that has [HideFlags.DontSave](/engine/6000.7/script-reference/unityengine/hideflags/dontsave.md) set.

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.

**Obsolete**: This function is obsolete, use [Object.FindFirstObjectByType](/engine/6000.7/script-reference/unityengine/object/findfirstobjectbytype.md) as a direct replacement or the faster [Object.FindAnyObjectByType](/engine/6000.7/script-reference/unityengine/object/findanyobjectbytype.md) if any object of the specified type is acceptable.

See Also: [Object.FindFirstObjectByType](/engine/6000.7/script-reference/unityengine/object/findfirstobjectbytype.md), [Object.FindAnyObjectByType](/engine/6000.7/script-reference/unityengine/object/findanyobjectbytype.md), [Object.FindObjectsOfType](/engine/6000.7/script-reference/unityengine/object/findobjectsoftype.md).

### Examples

```csharp
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");
    }
}
```

## FindObjectOfType(Type)

Returns the first active loaded object of Type `type`.

> **Warning:**
>
> **Deprecated.** Object.FindObjectOfType has been deprecated. Use Object.FindAnyObjectByType instead.

```csharp
public static Object FindObjectOfType(Type type)
```

### Parameters

**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of object to find.

### Returns

| Type                                                            | Description                                                                                                               |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | **Object** The first active loaded object that matches the specified type. It returns null if no Object matches the type. |

### Remarks

Object.FindObjectOfType will not return Assets (meshes, textures, prefabs, ...) or inactive objects. It will not return an object that has [HideFlags.DontSave](/engine/6000.7/script-reference/unityengine/hideflags/dontsave.md) set.

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.

**Obsolete**: This function is obsolete, use [Object.FindFirstObjectByType](/engine/6000.7/script-reference/unityengine/object/findfirstobjectbytype.md) as a direct replacement or the faster [Object.FindAnyObjectByType](/engine/6000.7/script-reference/unityengine/object/findanyobjectbytype.md) if any object of the specified type is acceptable.

See Also: [Object.FindFirstObjectByType](/engine/6000.7/script-reference/unityengine/object/findfirstobjectbytype.md), [Object.FindAnyObjectByType](/engine/6000.7/script-reference/unityengine/object/findanyobjectbytype.md), [Object.FindObjectsOfType](/engine/6000.7/script-reference/unityengine/object/findobjectsoftype.md).

### Examples

```csharp
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");
    }
}
```

## FindObjectOfType(Type, bool)

Returns the first active loaded object of Type `type`.

> **Warning:**
>
> **Deprecated.** Object.FindObjectOfType has been deprecated. Use Object.FindAnyObjectByType instead.

```csharp
public static Object FindObjectOfType(Type type, bool includeInactive)
```

### Parameters

**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of object to find.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Whether to include components attached to inactive GameObjects. If you don't specify this parameter, this function doesn't include inactive objects in the results.

### Returns

| Type                                                            | Description                                                                                                               |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | **Object** The first active loaded object that matches the specified type. It returns null if no Object matches the type. |

### Remarks

Object.FindObjectOfType will not return Assets (meshes, textures, prefabs, ...) or inactive objects. It will not return an object that has [HideFlags.DontSave](/engine/6000.7/script-reference/unityengine/hideflags/dontsave.md) set.

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.

**Obsolete**: This function is obsolete, use [Object.FindFirstObjectByType](/engine/6000.7/script-reference/unityengine/object/findfirstobjectbytype.md) as a direct replacement or the faster [Object.FindAnyObjectByType](/engine/6000.7/script-reference/unityengine/object/findanyobjectbytype.md) if any object of the specified type is acceptable.

See Also: [Object.FindFirstObjectByType](/engine/6000.7/script-reference/unityengine/object/findfirstobjectbytype.md), [Object.FindAnyObjectByType](/engine/6000.7/script-reference/unityengine/object/findanyobjectbytype.md), [Object.FindObjectsOfType](/engine/6000.7/script-reference/unityengine/object/findobjectsoftype.md).

### Examples

```csharp
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");
    }
}
```
