激活或停用对象 SetActive

我们使用 SetActive() 方法来激活或停用游戏中的指定对象。

1
public void SetActive (bool value);

其中:

参数 说明
value 激活或停用对象:true 可激活 GameObject,而 false 可停用 GameObject。

关于该方法的官方描述:

1.描述

GameObject 可能因为父项未处于活动状态而处于非活动状态。在这种情况下,调用 SetActive 不会激活它,而是仅设置此 GameObject 的本地状态,该状态可使用 GameObject.activeSelf 加以检查。当所有父项均处于活动状态时,Unity 便可以使用此状态。

停用 GameObject 将禁用每个组件,包括附加的渲染器、碰撞体、刚体和脚本。例如,Unity 将不再调用附加到已停用 GameObject 的脚本的 Update() 方法。当 GameObject 收到 SetActive(true)SetActive(false) 时,将调用 OnEnable 或 /OnDisable/。

2.示例

在教程中我们将某个游戏对象设置为 PowerUp 状态的标识 , 默认将其停用;

随后在产生撞击时将其激活:

1
2
3
4
5
6
7
8
9
10
11
12
13
//...
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("PowerUps"))
{
Destroy(other.gameObject);
isPowerUp = true;
//激活指定对象
powerUpSign.SetActive(true);
StartCoroutine(PowerUpEnd());
}
}
//...

以上。

3.尾注

可参考 Unity Document 中对该函数的说明:

以上。