2016-12-06 130 views
0

所以我有2個遊戲對象。第一個遊戲對象是setActive(false);第二個遊戲對象是我觸發時的第一個遊戲對象,第一個遊戲對象必須是setActive(true);但我似乎無法做到這一點..即時通訊只是在Unity當觸發另一個遊戲對象時取消隱藏遊戲對象

初學者
#pragma strict 
function Start() 
{ 
GameObject.Find("jumpImage").SetActive(false); 
} 

function OnTriggerEnter(col:Collider) 
{ 


if(col.tag=="Player") 
     { 
     GameObject.Find("jumpImage").SetActive(true); 

     }  
} 

回答

0

GameObject.Find只能找到「主動」的遊戲對象,你可以在文檔中看到GameObject.Find。這就是說,如果你在Start和OnTriggerEnter函數之間引用了相同的GameObject,那麼在你第一次找到它的時候你可能會保存一個引用。

#pragma strict 

var jumpImageGO : GameObject; 

function Start() 
{ 
    jumpImageGO = GameObject.Find("jumpImage"); 
    if (jumpImageGO != null) 
     jumpImageGO.SetActive(false); 
} 

function OnTriggerEnter(col:Collider) 
{ 
    if(col.tag=="Player") 
    { 
     jumpImageGO.SetActive(true); 
    }  
} 
+0

感謝您的幫助它的工作原理:d –

+0

先生。當我想將它設置爲活動狀態時,我可以添加延遲嗎? –

+0

當然,只需使用[Coroutine](https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html)並設置延遲或使用[WaitForSeconds](https://docs.unity3d.com/ScriptReference/ WaitForSeconds.html)。 – Landern