2012-11-05 32 views
-1

我正在嘗試通過有關Unity的教程(Will Goldstone的書3.x遊戲開發基礎知識)並繼續運行到錯誤消息中,並且我無法弄清楚什麼是錯誤的我的代碼。從第5章開始,我用Javascript寫這篇文章。什麼,我可以看到我所擁有的一切正確的 - 空引用我在執行Opendoor功能線出現2 &我shutDoor功能:2號線Unity遊戲引擎中的空引用異常

空引用異常 PlayerCollisionsjs.OpenDoor(UnityEngine.GameObject門)(在資產/腳本 /PlayerCollisionsjs.js:47 **和37條下面的行)。

我錯過了什麼?我OpenDoor & CloseDoor聲音加載和代碼工作,如果我刪除了閉門請求......任何想

#pragma strict 

private var doorIsOpen : boolean = false; 
private var doorTimer : float = 0.0; 
private var currentDoor : GameObject; 


var doorOpenTime : float = 3.0; 
var doorOpenSound : AudioClip; 
var doorShutSound : AudioClip; 

function Start() { 

} 

function Update() { 

    if(doorIsOpen) { doorTimer += Time.deltaTime; 
    if(doorTimer > doorOpenTime) { 
     shutDoor(currentDoor); 
     doorTimer = 0.0f; 
     } 
    } 
} 

function OnControllerColliderHit(hit : ControllerColliderHit){ 

     if(hit.gameObject.tag == "playerDoor" && doorIsOpen == false) { 
     currentDoor == hit.gameObject; 
     OpenDoor(hit.gameObject); 
     OpenDoor(currentDoor); 
     } 

    } 

function OpenDoor(door: GameObject) { 

    doorIsOpen = true; 
    door.audio.PlayOneShot(doorOpenSound); 
    door.transform.parent.animation.Play("dooropen"); 
} 


function shutDoor(door : GameObject) { 

    doorIsOpen = false; 
    door.audio.PlayOneShot(doorShutSound); 
    door.transform.parent.animation.Play("doorshut"); 
} 

我確實看到別人卡住了相同的代碼,但我們沒有同樣的問題,我的音頻在我插入shutDoor函數之前工作。

回答

0

我覺得你沒有分配打開和關閉門聲音到上面的兩個音頻剪輯,第一次將這些聲音分配給你的變量,那麼你的錯誤將被完成。