Unity游戏引擎中的空引用异常

时间:2012-11-05 22:05:20

标签: unity3d nullreferenceexception

我正在尝试通过关于Unity的教程(Will Goldstone的书籍3.x Game Development Essentials)并继续遇到错误消息,我无法弄清楚我的代码有什么问题。它来自第5章,我用Javascript写这个。我能看到的一切都是正确的 - 在我的OpenDoor功能线2&在我的shutDoor功能line2。:

  

空参考例外   PlayerCollisionsjs.OpenDoor(UnityEngine.GameObject门)(在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功能之前就有效了。

1 个答案:

答案 0 :(得分:0)

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