簡體   English   中英

unity3d如何提供多個音頻?

[英]how can unity3d multiple audio?

我的環境:
Win7 x64
Unity Pro 3.5.5
C#(Visual Studio 2010)

我的目標:
我正在用unity3d制作手機游戲。
我制造了炸彈效應。
效果在播放時會播放自己的聲音。

規格:
效果是使單個預制件具有平面,精靈紋理。
並具有音頻源(將wav文件拖放到Inspector中的Prefab中)
bombeffect由我的自定義對象池管理,因此我禁用了Inspector中的“ 喚醒”選項上的播放 (因為它是由我的自定義規則回收的)
所以我編碼:

//when the booming is begin

GameObject obj;
obj = MyObjectPool.Recycle("Prefabs/BombEffect");  //try recycle
if(obj != null)
{
    //every object's first creation is doing here
    obj = Instantiate("Prefabs/BombEffect") as GameObject;
    MyObjectPool.StartManage(obj);
}
obj.audio.play(); //play

問題:
炸彈效應迅速產生。 (攻擊速度非常快)
但是播放聲音的方式就像是SINGLETON。 這意味着如果炸彈效果音頻開始播放,則其他彈炸效果游戲對象的音頻無法播放。 直到第一個“ 玩”彈效果自然停止。

但是據我所知,一個預制件的音頻源可以與另一個預制件的音頻源同時播放。 但事實並非如此。 我不明白。 如何播放多個音頻文件?

我認為您的邏輯可能有問題。 如果MyObjectPool中沒有可用的對象,則MyObjectPool.Recycle()將返回null,除非您的Recycle()實現執行了我不知道的事情。

我認為這是您要尋找的:

    if(obj == null)
    {
       //every object's first creation is doing here
       obj = Instantiate("Prefabs/BombEffect") as GameObject;
       MyObjectPool.StartManage(obj);
    }

可能發生的事情是您實際上從未實例化一個以上的對象。 一旦完成播放,它將返回到池中,然后被回收以再次播放。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM