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

GameObject.SetActive

Declaration

public void SetActive(bool value);

Параметры

Параметр Описание
значение Активное состояние, которое нужно задать, где true устанавливает GameObject на активный, а false устанавливает его на неактивный.

Описание

Активирует или деактивирует GameObject локально, в зависимости от значения предоставленного параметра.

SetActive задаёт только локальное состояние GameObject, представленное значением GameObject.activeSelf. Изменение значения GameObject.activeSelf не влияет на значение GameObject.activeInHierarchy, если activeInHierarchy является false из-за неактивного родительского объекта.

Отключение GameObject отключает каждый компонент, включая прикрепленные рендереры, коллайдеры, rigidbodies и скрипты. Например, Unity больше не будет вызывать MonoBehaviour.Update в скрипты, прикрепленном к отключенному GameObject. Отключение GameObject также останавливает все прикрепленные к нему сопутствующие процедуры.

Примечание: Если вызов SetActive изменяет значение GameObject.activeInHierarchy, это вызывает MonoBehaviour.OnEnable или MonoBehaviour.OnDisable на всех присоединенных MonoBehaviour скриптах.

using UnityEngine;

public class Example : MonoBehaviour { private GameObject[] cubes = new GameObject[10]; public float timer, interval = 2f;

void Start() { Vector3 pos = new Vector3(-5, 0, 0);

for (int i = 0; i < 10; i++) { cubes[i] = GameObject.CreatePrimitive(PrimitiveType.Cube); cubes[i].transform.position = pos; cubes[i].name = "Cube_" + i; pos.x++; } }

void Update() { timer += Time.deltaTime; if (timer >= interval) { for (int i = 0; i < 10; i++) { int randomValue = Random.Range(0, 2); if (randomValue == 0) { cubes[i].SetActive(false); } else cubes[i].SetActive(true); } timer = 0; } } }

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