0
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 OpenDoor (door : GameObject)
{   
    doorIsOpen = true;
    door.audio.PlayOneShot(doorOpenSound);
    door.transform.parent.animation.Play("doorOpen");
}

function OnControllerColliderHit (hit : ControllerColliderHit)
{

    if(hit.gameObject.tag == "playerDoor" && doorIsOpen == false)
    {
        OpenDoor(hit.gameObject);       
    }
}

キャラクターがドアにぶつかったときに音が鳴るはずなのに、理由がわからない

4

2 に答える 2

2

Project次に移動しBook Assets Folder、サウンドを次の変数sounds folderにドラッグします。Door_open

var doorOpenSound : AudioClip; var doorShutSound : AudioClip;

サウンドが再生されます。

于 2012-12-05T09:45:46.983 に答える
1

簡単な手順で実行してください。最初に少しデバッグして、コードがOnControllerColliderHitに到達し、次にOpenDoor(hit.gameObject);に到達していることを確認します。また、door.transform.parent.animation.Play( "doorOpen");を再生できることを確認します。(そして条件付きではなく通常のコードで音を出す)

コードスニペットから、「playerDoor」の定義が他の場所で正しくない可能性があります

于 2012-03-01T16:04:24.547 に答える