Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


SetGameObjectsActive

Activates or deactivates multiple GameObjects identified by instance ID.
Read time 5 minutesLast updated 2 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • 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.
public static void SetGameObjectsActive(NativeArray<int> instanceIDs, bool active)

Parameters

instanceIDs

Instance IDs of GameObjects to activate or deactive.

active

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.
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(); }}

SetGameObjectsActive(NativeArray<EntityId>, bool)

Activates or deactivates multiple GameObjects identified by instance ID.
public static void SetGameObjectsActive(NativeArray<EntityId> entityIds, bool active)

Parameters


active

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.
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(); }}

SetGameObjectsActive(ReadOnlySpan<int>, bool)

Activates or deactivates multiple GameObjects identified by instance ID.
Warning
Removed. Obsolete. Please use GameObject.SetGameObjectsActive(ReadOnlySpan\<EntityId\>, bool) instead.
public static void SetGameObjectsActive(ReadOnlySpan<int> instanceIDs, bool active)

Parameters

Instance IDs of GameObjects to activate or deactive.

active

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.
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(); }}

SetGameObjectsActive(ReadOnlySpan<EntityId>, bool)

Activates or deactivates multiple GameObjects identified by instance ID.
public static void SetGameObjectsActive(ReadOnlySpan<EntityId> entityIds, bool active)

Parameters


active

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.
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(); }}