Pergunta

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

isto é suposto para reproduzir um som quando o meu personagem colide com uma porta, mas não eu não consigo entender porque

Foi útil?

Solução

Levá-lo através de passos simples;verifique primeiro com um pouco de depurar o seu código está chegando OnControllerColliderHit, em seguida, chegar a OpenDoor(hit.gameObject);Confirme também que ele pode reproduzir porta.transformação.- mãe.animação.Jogar("doorOpen");(e fazer um som no código normal, ao invés de incluir condicional)

A partir do trecho de código pode ser que o seu "playerDoor" definição está incorreta em outro lugar

Outras dicas

Ir para Project em seguida, Book Assets Folder em seguida, sounds folder em seguida, arraste Door_open som para estas variáveis:

var doorOpenSound : AudioClip; var doorShutSound : AudioClip;

O som será reproduzido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top