Unity 6.3
0 онлайн 21 гостей 3 в системе
Вход

GameObject.SetGameObjectsActive

Declaration

Obsolete public static void SetGameObjectsActive(NativeArray<int> instanceIDs, bool active);
Obsolete public static void SetGameObjectsActive(ReadOnlySpan<int> instanceIDs, bool active);

Параметры

Параметр Описание
instanceIDs Экземпляр IDs из GameObjects для активации или деактивации.
активные Активное состояние, которое нужно задать, где true устанавливает GameObjects на активный, а false устанавливает их на неактивный.

Описание

Активирует или деактивирует несколько GameObjects, идентифицируемых экземпляром ID.

Используйте SetGameObjectsActive для активации или деактивации нескольких GameObjects одновременно.

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

Дополнительные ресурсы: ,GameObject.SetActive,, ,GameObject.InstantiateGameObjects,.