Unity腳本:激活遊戲物件

Unity腳本:激活遊戲物件

在Unity腳本中,要激活遊戲物件的方法就是使用遊戲物件的SetActive方法:

gameObject.SetActive(true);

短短一行程式碼,但依然有要注意的地方。

首先遊戲物件在未激活的狀態下,本身的腳本是不會執行的,

所以如果你在一個激活的遊戲物件的start()函式中使用下面程式碼:

gameObject.SetActive(false);

可以成功地將物件變成非激活狀態,

但是在一個非激活的物件中使用下面程式碼:

gameObject.SetActive(true);

是無法讓物件激活的,因為這個腳本根本就不會執行。

所以必須在其他遊戲物件的腳本中取得要激活的遊戲物件,然後才能再將其激活。

另外一個重點是,對於有子物件的遊戲物件而言,

自身的激活狀態並不影響其子物件的激活狀態。

不會因為父物件被轉為非激活,子物件就變成非激活。

但是在場景中,父物件是非激活的狀態下,即便子物件本身是激活狀態,

也不會在場景中顯示。

而父物件在激活狀態下,子物件的非激活會讓子物件消失在場景中。

譬如說B物件是A物件的子物件,

當 A物件處在非激活狀態,B物件是激活狀態==>場景中視看不到A物件與B物件

當 A物件處在激活狀態,B物件是非激活狀態==>場景中視看不到B物件

要取得自身的激活狀態可以使用遊戲物件的activeSelf屬性

而要取得所屬階層結構的激活狀態可以使用遊戲物件的activeInHierarchy屬性。

下面是來自官網教學的js程式

#pragma strict
public var myObject :GameObject;
function Start ()
{
    Debug.Log("Active Self: " + myObject.activeSelf);
    Debug.Log("Active in Hierarchy" + myObject.activeInHierarchy);
}

官網的教學:

 
 

  按個讚!~支持本站!~

FB推薦載入中