2013-10-22 4 views
0

두 개의 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 구성 요소를 사용하려면 먼저 구성 요소를 가져와야합니다.

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

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

내가 스크립트 모두 UnityScript (자바 스크립트)에있다 있으리라 믿고있어 : 여기 PlayerDoorTriggerdoorMove이 같은 게임 오브젝트에 연결된 가정 간단한 예입니다. 그렇지 않다면, find other ways에 Unity를 스크립트 클래스를 인식시켜야하므로, 그 타입의 변수를 할당 할 수 있습니다.

+0

나는 이것을 시도 할 것이다. 그것이 효과가 있었는지 알려줄 것입니다. Jerdak에게 감사드립니다. –

+0

고맙습니다. 답변을 통해 해결책을 찾았습니다. D –

관련 문제