2013-10-22 150 views
0

我有兩個GameObject,一個門和觸發器。每個GameObject在每個GameObject中都有一個腳本,觸發器具有PlayerDoorTrigger.js來檢測玩家是否進入觸發器。門上有doorMove.js點擊時打開門。試圖訪問另一個GameObject中的另一個腳本

我遇到了一個問題,從PlayerDoorTrigger.js將boolean從doorMove.js轉換爲if語句。這裏有以下兩個腳本:

doorMove.js

var doorDynamic = false; 

var playerTrigger:GameObject; 


function Awake() { 

} 
function Start() { 
    playerDoorTrigger.playerOnTrigger = true; 
} 

function Update() { 
    if(Input.GetMouseButton(0)){ 
     doorDynamic=true; 
    } 
    if(doorDynamic == true){ 
     transform.Rotate(Vector3.up * Time.deltaTime*128); 
    } 
    } 

function OnCollisionEnter(doorCol:Collision){ 
    if(doorCol.gameObject.tag=="Walls"){ 
     Debug.Log("POP"); 
     doorDynamic = false; 
    } 
} 

PlayerDoorTrigger

public var playerOnTrigger = false; 

function OnTriggerEnter(trigger:Collider){ 
    if(trigger.gameObject.tag=="Player"){ 
     playerOnTrigger=true; 
    } 
} 

function OnTriggerExit(trigger:Collider){ 
    if(trigger.gameObject.tag=="Player"){ 
     playerOnTrigger=false; 
    } 
} 

嘗試以下使用GetComponent但沒有運氣腳本參考。

請幫我解決這個,謝謝。

回答

1

您需要獲取您的PlayerDoorTrigger組件,然後才能使用它。這裏是假設PlayerDoorTriggerdoorMove連接到同一個遊戲對象一個簡單的例子:

var playerDoorTrigger = GetComponent("PlayerDoorTrigger") as PlayerDoorTrigger; 

if (playerDoorTrigger.playerOnTrigger) { 
    Debug.Log("Huzzah, player trigger true."); 
} 

我假定這兩個腳本都在UnityScript(JavaScript的)。如果不是,則需要find other ways讓Unity識別腳本類,以便您可以分配該類型的變量。

+0

我會試試這個。會讓你知道它是否工作。謝謝Jerdak。 –

+0

謝謝你,我通過你的回答找到了答案:D –