停止音频剪辑/ Audiosource

本文关键字:Audiosource 音频 | 更新日期: 2023-09-27 17:54:00

我有一个很长的音频剪辑,应该开始播放时,满足一定的条件(第一个IF在下面的代码),并继续播放,直到满足另一个条件(第二个IF)。

问题是我不知道如何使audioclip停止播放,我尝试了audioclip . 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;
            }
        }
}

谢谢!

停止音频剪辑/ Audiosource

我认为这个问题是因为"PlayClipAtPoint"是一个静态方法,而停止方法会因为引用错误而出现问题。从阅读文档来看,它说"这个功能创建一个音频源,但一旦剪辑完成播放就自动处理它。"

这意味着在指定的3D空间中创建一个新的"AudioSource"来播放请求的音频。这意味着,要么你需要一个新的音频源的引用(不确定你将如何做),要么使用不同的播放方法。