【发布时间】:2017-07-20 14:58:37
【问题描述】:
所以目前我有一个 8 秒长的音频剪辑。但是,我希望能够在发生特定事情时阻止它播放。像这样的:
private AudioSource soundPlayer2D;
private AudioClip sound;
void Start(){
GameObject new2DsoundPlayer = new GameObject ("2DSoundPlayer");
soundPlayer2D = new2DsoundPlayer.AddComponent<AudioSource> ();
new2DsoundPlayer.transform.parent = transform;
}
void Update() {
if(shouldPlayAudio){
soundPlayer2D.PlayOneShot (sound, fxVolumePercentage * allVolumePercentage);
} else if(shouldStopAudio){
//Stop Audio <--
}
}
编辑 1:注意我只想停止特定的音频剪辑而不是音频源
【问题讨论】:
-
SoundPlayer2D.Stop()?此外,您应该将该属性重命名为
soundPlayer2D以符合标准命名约定(只有类名以首字母大写开头,或者对属性的方法调用看起来像对类的静态引用)。 -
但这会停止 SoundPlayer2D 播放的所有音频,不是吗??然后当我想在 SoundPlayer2D 上播放另一个声音时,当我恢复 SoundPlayer2D @Draco18s 时,前一个声音将完成播放
-
哎呀只是一个错字@Draco18s
-
我认为任何需要停止的剪辑都不应该使用
PlayOneShot()播放,并且应该有一个单独的音频源。 (AudioSource SoundPlayer2D;还是大写的 S) -
哦,好的,所以你建议我制作一个单独的音频源来播放这个特定的声音……还有其他选择吗?