我正在尝试阅读有关 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 函数之前就可以工作。