当我的角色越过终点线时,我会发出“胜利”的声音。我有一个 AudioSource 对象,我只需将其称为 PlayOneShot ,然后将其传递给 AudioClip :
public void PlayWon() {
if (GameData.Data.Settings.SoundsOn) {
AudioSource audio = GetComponent<AudioSource>();
audio.Stop();
audio.PlayOneShot(WinSound);
}
}
我对 AudioSource 的设置如下:
和附加到它的对象被加载到一个永不被破坏的 Loader 场景中。我通过致电确认这一点:
DontDestroyOnLoad(this);
在清醒时。
我的声音在iOS,iPhone和iPad上播放得很好。但是当我在三星Galaxy Tab S上进行测试时,声音播放然后暂停,同时显示插页式广告,然后当解散时,声音继续播放。我正在使用Chartboost和Admob并使用基本调用:
if (Chartboost.hasInterstitial(CBLocation.LevelComplete)) {
Debug.Log("Showing CB Ad");
Chartboost.showInterstitial(CBLocation.LevelComplete);
}
else if (_admobInterstitial.IsLoaded()) {
Debug.Log("Showing Admob Ad");
_admobInterstitial.Show();
}
else {
Debug.Log("Neither cached, trying CB again");
Chartboost.cacheInterstitial(CBLocation.LevelComplete);
Chartboost.showInterstitial(CBLocation.LevelComplete);
}
为什么我的声音会在这个设备上消失?我没有其他Android设备来测试它,但我认为这是一个与Android相关的问题。 Chartboost和Admob的声音都消失了。
由于
答案 0 :(得分:3)
您可以使用协程播放声音。协程完成后,您可以展示广告。
private IEnumerator PlaySoundAndShowAd()
{
//play sound
yield return new WaitForSeconds(1.0f)
//show ads or do something.
}