【发布时间】:2018-04-15 17:33:41
【问题描述】:
我有一个 1.5 秒的音频文件 - 一声枪响。我希望能够在鼠标按下时播放声音(就像自动武器一样),我使用InvokeRepeating 调用了射击方法,重复率非常低:
if (Input.GetButtonDown("Fire1"))
{
InvokeRepeating("Shoot", 0f, 1f/currentWeapon.fireRate);
} else if (Input.GetButtonUp("Fire1"))
{
CancelInvoke("Shoot");
}
这就是Shoot方法:
void Shoot()
{
shootSound.PlayOneShot(shoot);
}
问题是声音被切断并且听不到镜头,它只播放了几分之一秒,而不是整个音频片段。我试过 play() 和 playOneShot()。
是否有一个选项可以单独播放每个剪辑,比如创建它的克隆?
谢谢!
【问题讨论】:
-
PlayOneShot 适合在这种情况下使用,但如果没有您的代码,就不可能知道您在做什么。
-
我添加了我提到的方法。感谢您的评论!
-
1.不,我希望他们互相“叠加”演奏,只需从每个 InvokeRepeating 的重复开始,然后让它演奏到最后。目标是让它听起来像机关枪。 2. Shoot函数是唯一调用PlayOneShot()的函数。 shootSound 是 AudioSource,shoot 是 AudioClip。 3. 一直播放到最后。声音本身很好。