【发布时间】:2018-09-25 14:44:57
【问题描述】:
我花了一段时间才找到它,我什至不得不重新创建场景,我碰巧忘记了 EventSystem,但是……我正在开发一个简单的 2D 应用程序。按下按钮,它会播放随机声音。这很有效,超级简单。有一个 Button UI 元素,OnClick 调用我的脚本(它在一个对象上)并且该脚本播放音频。
我想添加一个音高滑块,以便脚本将音频剪辑分配给 AudioSource,并将 UI 滑块的 OnValueChanged 附加到我的脚本中。现在我意识到我需要添加我的 EventSystem 但现在我的按钮无法播放音频!
我在 Play() 调用之前有 Debug.Log 语句,所以我知道按钮回调正在工作,只是没有音频。删除 EventSystem 后,按钮可以正常播放音频,但现在我无法使用滑块。想法?
使用 2018.2 - Android 构建
编辑
private AudioSource audioSource;
....
IEnumerator PlayClip() {
// Do stuff
audioSource.clip = audioClip;
audioSource.Play();
while(audioSource.isPlaying)
yield return new WaitForSeconds(0.5f);
}
public void ButtonPushed() {
StartCoroutine(PlayClip());
}
public void ChangePitch(float pitch) {
audioSource.pitch = pitch
}
然后 Slider OnValueChanged() 只是调用 ChangePitch 范围为 -3 到 3。上面的所有代码只是一个脚本并附加到一个 Controller 对象。
别着急,协程逻辑比那好一点:)
【问题讨论】:
-
我认为我们需要查看与滑块的
OnValueChanged()事件相关的代码才能弄清楚这一点。 -
是的,我想有人会要代码。不幸的是,几个小时都无法到达。我会尽力而为,请参阅上面的编辑。
-
你说这发生在 Android 上……它也发生在编辑器中吗?
-
是的,两者都发生了。