作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在 Unity 中处理一些音频处理代码,最近遇到了一个相当奇怪的问题,我希望尽快解决。
基本上,使用 OnAudioFilterRead AudioSource 上的回调函数当playOnAwake检查标志会导致意外行为,即默认的 Unity AudioSource 流似乎会播放几个缓冲区 - 绕过 OnAudioFilterRead 函数 - 直到脚本正确初始化(假设直到 Awake/OnEnable 函数完成) .
为了强调这个问题,这里有一个简单的说明性脚本,可以使音频源静音:
// This script is attached to a GameObject with an AudioSource.
// AudioSource has a clip attached to it, and playOnAwake flag is set to true.
[RequireComponent(typeof(AudioSource))]
public class MuteSource : MonoBehaviour {
void Awake () {
/*
* Some time-consuming code block.
*/
}
void OnAudioFilterRead (float[] data, int channels) {
for (int i = 0; i < data.Length; ++i) {
data[i] = 0.0f;
}
}
}
void Awake () {
// The clip still plays as normal after this call.
AudioSource audioSource = GetComponent<AudioSource>();
audioSource.Stop();
/*
* Some time-consuming code block.
*/
}
// This script is attached to a GameObject with AudioListener.
[RequireComponent(typeof(AudioListener))]
public class MuteListener : MonoBehaviour {
void Awake () {
}
void OnAudioFilterRead (float[] data, int channels) {
for (int i = 0; i < data.Length; ++i) {
data[i] = 0.0f;
}
}
}
最佳答案
如果其他人遇到此问题,似乎问题已在 Unity 5.2.0B5(或者可能是 5.1.0 以上的某些早期版本)中自动解决。奇怪的是,我在他们的任何发行说明中都找不到有关该修复的任何具体内容。
关于c# - 将 OnAudioFilterRead 与 playOnAwake 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30654493/
我目前正在 Unity 中处理一些音频处理代码,最近遇到了一个相当奇怪的问题,我希望尽快解决。 基本上,使用 OnAudioFilterRead AudioSource 上的回调函数当playOnAw
我是一名优秀的程序员,十分优秀!