消息关闭
    暂无新消息!
现在想对人物添加射击时候的枪声,我对人物添加了Audio Source之后,在检测到射击信号到来,就播放声音:
myAudio.Play();
如果是单次射击工作很完美,但是如果连续射击的时候,下一次的射击声音到来,会导致上一次的射击声音只播放了一点点就戛然而止,非常郁闷。
请问有没有办法让下一次射击声音播放的时候不影响上一次的声音,让上一次也可以执行完毕?

4个回答

︿ 1
两种方法,
1,播放声音的代码放在单独的线程里
2,如果引擎是自己写的,更简单,声音播放有自己的结束触发点,本身就不会受其它的事件干扰
︿ 0
我一般这些声音播放元素 我会单独创建一个obj来处理 然后用对象池把这些对象管理起来 
︿ 0
不用这么麻烦,u3d自带解决方案


public AudioClip m_shootClip;
protected AudioSource m_audio;

在start里
m_audio = this.audio;

最关键的
 m_audio.PlayOneShot(m_shootClip);

就不会覆盖了
︿ 0
把枪声添加到子弹上而不是枪或者人上,大概就是你想要的效果了。