我有一个很长的音频剪辑,当满足某个条件时(下面的代码中的第一个IF)应该开始播放,并继续播放直到满足另一个条件(第二个IF)。
问题是我无法弄清楚如何使音频剪辑停止播放,我尝试了audio.Stop(),但它说Stop()的定义为n,您能帮上忙吗?
using UnityEngine;
using System.Collections;
public class PowerShutdown: MonoBehaviour {
public AudioClip[] on_sfx;
int i;
int k;
void Start ()
{
k = 1;
}
void Update ()
{
if (PlayLevel1.percentageLoadProductionint < 100 && StateManager.activeState is PlayState && Time.timeSinceLevelLoad > 1 && k== 1)
{
AudioSource.PlayClipAtPoint (on_sfx [0], transform.position);
k = 2;
}
if (PlayLevel1.percentageLoadProductionint > 100 && StateManager.activeState is PlayState && Time.timeSinceLevelLoad > 1 && k == 2)
{
audio.Stop ();
AudioSource.PlayClipAtPoint (on_sfx [1], transform.position);
k = 1;
}
}
}
谢谢!
最佳答案
我认为问题是因为“PlayClipAtPoint”是静态方法,而由于引用错误,stop方法将出现问题。阅读文档后,它会显示“此功能会创建音频源,但剪辑播放完毕后会自动将其丢弃。”
这意味着将在指定的3D空间创建一个新的“AudioSource”以播放请求的音频。这意味着,您需要引用新的音频源(不确定如何做),或者使用其他播放方法。
关于c# - 停止音频剪辑/音频源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38130612/