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 関数を挿入する前にオーディオが機能します。