# SetGameObjectsActive

> Activates or deactivates multiple GameObjects identified by instance ID.

## Definition

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

## SetGameObjectsActive(NativeArray\<int>, bool)

Activates or deactivates multiple GameObjects identified by instance ID.

> **Warning:**
>
> **Removed.** Obsolete. Please use GameObject.SetGameObjectsActive(NativeArray\\\<EntityId\\>, bool) instead.

```csharp
public static void SetGameObjectsActive(NativeArray<int> instanceIDs, bool active)
```

### Parameters

**** (\[NativeArray\<int>]\(/engine/6000.6/script-reference/unity/collections/nativearray1)): Instance IDs of GameObjects to activate or deactive.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The active state to set, where `true` sets the GameObjects to active and `false` sets them to inactive.

### Remarks

Use `SetGameObjectsActive` to activate or deactivate multiple GameObjects as a batch.

```csharp
using System;
using Unity.Collections;
using UnityEngine;
using UnityEngine.InputSystem;

//Add this script to a GameObject. This example requires the Input System package.

public class DeactivateGOComponent : MonoBehaviour
{
public GameObject prefab;
public int count = 100;

    NativeArray<int> m_SpawnedInstanceIDsNative;
    int[] m_SpawnedInstanceIDs;

    bool m_SetActive = false;
    bool m_UseSlowMethod = false;

    void Start()
    {
        m_SpawnedInstanceIDs = new int[count];

        //Spawn some prefabs 
        for (int i = 0; i < count; i++)
        {
            //Save their instanceID
            m_SpawnedInstanceIDs[i] = Instantiate(prefab).GetInstanceID();
        }

        //Create native array with instanceIDs
        m_SpawnedInstanceIDsNative = new NativeArray<int>(m_SpawnedInstanceIDs, Allocator.Persistent);

    }

    void Update()
    {
        if (Keyboard.current[Key.A].wasPressedThisFrame)
        {
            if (m_UseSlowMethod)
            {
                SetActiveSlow(m_SetActive);
            }
            else
            {
                SetActiveFast(m_SpawnedInstanceIDsNative, m_SetActive);

            }
            m_SetActive = !m_SetActive; 
        }
    }

    void SetActiveSlow(bool setActive)
    {
        foreach(int id in m_SpawnedInstanceIDs)
        {
            ((GameObject)Resources.InstanceIDToObject(id)).SetActive(setActive);
        }
    }

    static void SetActiveFast(NativeArray<int> ids, bool setActive)
    {
        GameObject.SetGameObjectsActive(ids, setActive);
    }

    void OnDestroy()
    {
        m_SpawnedInstanceIDsNative.Dispose();
    }
}
```

Additional Resources: [GameObject.SetActive](/engine/6000.6/script-reference/unityengine/gameobject/setactive.md), [GameObject.InstantiateGameObjects](/engine/6000.6/script-reference/unityengine/gameobject/instantiategameobjects.md).

## SetGameObjectsActive(NativeArray\<EntityId>, bool)

Activates or deactivates multiple GameObjects identified by instance ID.

```csharp
public static void SetGameObjectsActive(NativeArray<EntityId> entityIds, bool active)
```

### Parameters

**** (\[NativeArray\<EntityId>]\(/engine/6000.6/script-reference/unity/collections/nativearray1)): **** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The active state to set, where `true` sets the GameObjects to active and `false` sets them to inactive.

### Remarks

Use `SetGameObjectsActive` to activate or deactivate multiple GameObjects as a batch.

```csharp
using System;
using Unity.Collections;
using UnityEngine;
using UnityEngine.InputSystem;

//Add this script to a GameObject. This example requires the Input System package.

public class DeactivateGOComponent : MonoBehaviour
{
public GameObject prefab;
public int count = 100;

    NativeArray<int> m_SpawnedInstanceIDsNative;
    int[] m_SpawnedInstanceIDs;

    bool m_SetActive = false;
    bool m_UseSlowMethod = false;

    void Start()
    {
        m_SpawnedInstanceIDs = new int[count];

        //Spawn some prefabs 
        for (int i = 0; i < count; i++)
        {
            //Save their instanceID
            m_SpawnedInstanceIDs[i] = Instantiate(prefab).GetInstanceID();
        }

        //Create native array with instanceIDs
        m_SpawnedInstanceIDsNative = new NativeArray<int>(m_SpawnedInstanceIDs, Allocator.Persistent);

    }

    void Update()
    {
        if (Keyboard.current[Key.A].wasPressedThisFrame)
        {
            if (m_UseSlowMethod)
            {
                SetActiveSlow(m_SetActive);
            }
            else
            {
                SetActiveFast(m_SpawnedInstanceIDsNative, m_SetActive);

            }
            m_SetActive = !m_SetActive; 
        }
    }

    void SetActiveSlow(bool setActive)
    {
        foreach(int id in m_SpawnedInstanceIDs)
        {
            ((GameObject)Resources.InstanceIDToObject(id)).SetActive(setActive);
        }
    }

    static void SetActiveFast(NativeArray<int> ids, bool setActive)
    {
        GameObject.SetGameObjectsActive(ids, setActive);
    }

    void OnDestroy()
    {
        m_SpawnedInstanceIDsNative.Dispose();
    }
}
```

Additional Resources: [GameObject.SetActive](/engine/6000.6/script-reference/unityengine/gameobject/setactive.md), [GameObject.InstantiateGameObjects](/engine/6000.6/script-reference/unityengine/gameobject/instantiategameobjects.md).

## SetGameObjectsActive(ReadOnlySpan\<int>, bool)

Activates or deactivates multiple GameObjects identified by instance ID.

> **Warning:**
>
> **Removed.** Obsolete. Please use GameObject.SetGameObjectsActive(ReadOnlySpan\\\<EntityId\\>, bool) instead.

```csharp
public static void SetGameObjectsActive(ReadOnlySpan<int> instanceIDs, bool active)
```

### Parameters

**** (\[ReadOnlySpan\<int>]\(https\://learn.microsoft.com/dotnet/api/system.readonlyspan-1)): Instance IDs of GameObjects to activate or deactive.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The active state to set, where `true` sets the GameObjects to active and `false` sets them to inactive.

### Remarks

Use `SetGameObjectsActive` to activate or deactivate multiple GameObjects as a batch.

```csharp
using System;
using Unity.Collections;
using UnityEngine;
using UnityEngine.InputSystem;

//Add this script to a GameObject. This example requires the Input System package.

public class DeactivateGOComponent : MonoBehaviour
{
public GameObject prefab;
public int count = 100;

    NativeArray<int> m_SpawnedInstanceIDsNative;
    int[] m_SpawnedInstanceIDs;

    bool m_SetActive = false;
    bool m_UseSlowMethod = false;

    void Start()
    {
        m_SpawnedInstanceIDs = new int[count];

        //Spawn some prefabs 
        for (int i = 0; i < count; i++)
        {
            //Save their instanceID
            m_SpawnedInstanceIDs[i] = Instantiate(prefab).GetInstanceID();
        }

        //Create native array with instanceIDs
        m_SpawnedInstanceIDsNative = new NativeArray<int>(m_SpawnedInstanceIDs, Allocator.Persistent);

    }

    void Update()
    {
        if (Keyboard.current[Key.A].wasPressedThisFrame)
        {
            if (m_UseSlowMethod)
            {
                SetActiveSlow(m_SetActive);
            }
            else
            {
                SetActiveFast(m_SpawnedInstanceIDsNative, m_SetActive);

            }
            m_SetActive = !m_SetActive; 
        }
    }

    void SetActiveSlow(bool setActive)
    {
        foreach(int id in m_SpawnedInstanceIDs)
        {
            ((GameObject)Resources.InstanceIDToObject(id)).SetActive(setActive);
        }
    }

    static void SetActiveFast(NativeArray<int> ids, bool setActive)
    {
        GameObject.SetGameObjectsActive(ids, setActive);
    }

    void OnDestroy()
    {
        m_SpawnedInstanceIDsNative.Dispose();
    }
}
```

Additional Resources: [GameObject.SetActive](/engine/6000.6/script-reference/unityengine/gameobject/setactive.md), [GameObject.InstantiateGameObjects](/engine/6000.6/script-reference/unityengine/gameobject/instantiategameobjects.md).

## SetGameObjectsActive(ReadOnlySpan\<EntityId>, bool)

Activates or deactivates multiple GameObjects identified by instance ID.

```csharp
public static void SetGameObjectsActive(ReadOnlySpan<EntityId> entityIds, bool active)
```

### Parameters

**** (\[ReadOnlySpan\<EntityId>]\(https\://learn.microsoft.com/dotnet/api/system.readonlyspan-1)): **** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The active state to set, where `true` sets the GameObjects to active and `false` sets them to inactive.

### Remarks

Use `SetGameObjectsActive` to activate or deactivate multiple GameObjects as a batch.

```csharp
using System;
using Unity.Collections;
using UnityEngine;
using UnityEngine.InputSystem;

//Add this script to a GameObject. This example requires the Input System package.

public class DeactivateGOComponent : MonoBehaviour
{
public GameObject prefab;
public int count = 100;

    NativeArray<int> m_SpawnedInstanceIDsNative;
    int[] m_SpawnedInstanceIDs;

    bool m_SetActive = false;
    bool m_UseSlowMethod = false;

    void Start()
    {
        m_SpawnedInstanceIDs = new int[count];

        //Spawn some prefabs 
        for (int i = 0; i < count; i++)
        {
            //Save their instanceID
            m_SpawnedInstanceIDs[i] = Instantiate(prefab).GetInstanceID();
        }

        //Create native array with instanceIDs
        m_SpawnedInstanceIDsNative = new NativeArray<int>(m_SpawnedInstanceIDs, Allocator.Persistent);

    }

    void Update()
    {
        if (Keyboard.current[Key.A].wasPressedThisFrame)
        {
            if (m_UseSlowMethod)
            {
                SetActiveSlow(m_SetActive);
            }
            else
            {
                SetActiveFast(m_SpawnedInstanceIDsNative, m_SetActive);

            }
            m_SetActive = !m_SetActive; 
        }
    }

    void SetActiveSlow(bool setActive)
    {
        foreach(int id in m_SpawnedInstanceIDs)
        {
            ((GameObject)Resources.InstanceIDToObject(id)).SetActive(setActive);
        }
    }

    static void SetActiveFast(NativeArray<int> ids, bool setActive)
    {
        GameObject.SetGameObjectsActive(ids, setActive);
    }

    void OnDestroy()
    {
        m_SpawnedInstanceIDsNative.Dispose();
    }
}
```

Additional Resources: [GameObject.SetActive](/engine/6000.6/script-reference/unityengine/gameobject/setactive.md), [GameObject.InstantiateGameObjects](/engine/6000.6/script-reference/unityengine/gameobject/instantiategameobjects.md).
