-1

Unity のチュートリアル (Will Goldstone の書籍 3.x Game Development Essentials) を実行しようとしていますが、エラー メッセージが表示され続け、自分のコードの何が問題なのかわかりません。第5章からです。Javascriptで書いています。私が見ることができるものについては、すべて正しいです--null 参照は、OpenDoor 関数の 2 行目と shutDoor 関数の 2 行目に表示されます。

Null 参照例外 PlayerCollisionsjs.OpenDoor(UnityEngine.GameObject door) (Assests/Scripts /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 関数を挿入する前にオーディオが機能します。

4

1 に答える 1

0

上記の 2 つのオーディオ クリップにドアの開閉音を割り当てていないと思います。最初にこれらの音を変数に割り当ててから、エラーは終了します。

于 2012-12-05T09:53:26.253 に答える