实现的效果
若从左声道开始,播放效果逐渐从左声道过渡到右声道,再从右声道过渡到左声道,具体效果请戴上耳机播放下列视频。
StereoPanning
代码实现
public class AudioInfo
{
[HideInInspector] public float[] StereoTranslationValues;//立体声平移过渡值集合
[HideInInspector] public float StereoTimeSpan;//立体声平移过渡值时间片
[HideInInspector] public AudioSource mSource;//音频源组件
public bool StereoTranslation;//是否开启立体声平移过渡
//立体声平移过渡协程
public IEnumerator StereoPanTranslation()
{
int currentIndex = 0;
while (true)
{
if (mSource == null || !StereoTranslation || StereoTranslationValues == null || StereoTranslationValues?.Length == 0 || StereoTimeSpan <= 0) yield break;
mSource.panStereo = StereoTranslationValues[currentIndex];
yield return new WaitForSeconds(StereoTimeSpan);
currentIndex = (currentIndex + 1) % StereoTranslationValues.Length;
if (currentIndex == 0) StereoTranslationValues = StereoTranslationValues.Reverse().ToArray<float>();
}
}
}
代码解说
上述代码仅为AudioInfo这个类的一部分,主要涉及立体声平移的属性和方法,立体声平移过渡的效果由协程StereoPanTransition实现,首先进行一个非法判断,然后修改立体声平移过渡值,每修改一次等待一个时间片,然后更新当前索引,每当当前索引为0时则反转立体声平移过渡值的集合。
调用方法很简单,只需要设置好四个属性,并启动协程即可。文章来源:https://www.toymoban.com/news/detail-691367.html
如果这篇文章对你有帮助,请给作者点个赞吧!文章来源地址https://www.toymoban.com/news/detail-691367.html
到了这里,关于Unity中立体声平移的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!