2012-03-01 27 views
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);  
    } 
} 

这是应该的时候我的性格有门碰撞播放声音,但它并没有我不明白为什么为什么我的声音不打

+0

你确定这不是ActionScript吗? – Joe 2012-03-01 16:02:28

+0

是的,我敢肯定,我明白有类似的混淆 – Darren 2012-03-01 16:06:24

回答

1

把它通过简单的步骤; 首先验证一下你的代码到达OnControllerColliderHit,然后到达OpenDoor(hit.gameObject); 同时确认它可以播放door.transform.parent.animation.Play(“doorOpen”); (,并在正常的代码中的声音,而不是条件)

从代码段也可能是你的“playerDoor”的定义是在其他地方不正确

+0

我觉得自己像个白痴一样简单,就像playerDoor做playerdoor一样,你必须在这样的时刻踢自己 – Darren 2012-03-01 16:12:56

+0

哦,谢谢我不会想如果你没有提到它 – Darren 2012-03-01 16:15:57

+1

我们都去过;你越看代码越有时候会错过。 – Rob 2012-03-01 16:17:12

2

转到Project然后Book Assets Folder然后sounds folder然后拖动Door_open声音这些变量:

var doorOpenSound : AudioClip; var doorShutSound : AudioClip;

你将播放声音。

相关问题