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);       
    }
}

this is supposed to play a sound when my character collides with a door but it doesn't i can't understand why

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 回答