停止音频剪辑/音频源

时间:2016-06-30 18:20:48

标签: c# audio unity3d

我有一个非常长的音频片段,应该在满足某个条件时开始播放(下面代码中的第一个IF)并继续播放直到满足另一个条件(第二个IF)。

问题是我无法想象如何让audioclip停止播放,我尝试了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;
            }
        }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这个问题是因为&#34; PlayClipAtPoint&#34;是一种静态方法,由于引用错误,stop方法会出现问题。通过阅读它所说的文档&#34;此功能创建一个音频源,但在剪辑完成播放后自动处理它。&#34;

这意味着一个新的&#34; AudioSource&#34;在指定的3D空间中创建以播放所请求的音频。这意味着,您需要引用新音频源(不确定如何执行此操作),或使用其他播放方法。

相关问题