2012-03-01 24 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;

你將播放聲音。

相關問題