-1

我正在尝试阅读有关 Unity 的教程(Will Goldstone 的书 3.x Game Development Essentials)并不断遇到错误消息,但我无法弄清楚我的代码有什么问题。它来自第 5 章,我正在用 Javascript 编写它。对于我所看到的,我的一切都是正确的——空引用出现在我的 OpenDoor 函数第 2 行和我的 shutDoor 函数第 2 行中:

Null Reference Exception 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

我认为您没有将开门和关门的声音分配给以上两个音频片段,首先将这些声音分配给您的变量,然后您的错误将结束。

于 2012-12-05T09:53:26.253 回答