value | 激活或停用对象:true 可激活 GameObject,而 false 可停用 GameObject。 |
根据给定的值 true
或 /false/,激活/停用 GameObject。
GameObject 可能因为父项未处于活动状态而处于非活动状态。在这种情况下,调用 SetActive 不会激活它,而是仅设置此 GameObject 的本地状态,该状态可使用 GameObject.activeSelf 加以检查。当所有父项均处于活动状态时,Unity 便可以使用此状态。
停用 GameObject 将禁用每个组件,包括附加的渲染器、碰撞体、刚体和脚本。例如,Unity 将不再调用附加到已停用 GameObject 的脚本的 Update()
方法。当 GameObject 收到 SetActive(true)
或 SetActive(false)
时,将调用 OnEnable
或 /OnDisable/。
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; } } }