从另一个脚本停止audioclip

时间:2015-08-10 20:33:15

标签: c# unity3d

我需要停止一个音频片段,该音频片段将从附有脚本的空gameobject播放。

附加的脚本将播放音乐,另一个gameobject附加的脚本将停止播放。

我该如何做到这一点?

我可以改用音频源,但是如果我这样做了,我如何从附加到第二个audio.stop()的第二个脚本中调用gameobject

1 个答案:

答案 0 :(得分:1)

您需要做的就是从GameObject B访问GameObject A中的脚本,并调用方法停止播放剪辑。

实施例

将AudioPlayer.cs附加到GameObject A

public class AudioPlayer : Monobehaviour {

    public static AudioSource instance;
    private AudioSource audioSource;

    void Awake () {
        instance = this;
        audioSource = GetComponent<AudioSource>();
    }

    public void PlayClip () {
        //Assumption is that you've assigned the audio clip to this source in the inspector
        audioSource.Play();
    }

    public void StopClip () {
        audioSource.Stop();
    }

}

将AudioController.cs附加到GameObject B

public class AudioController : Monobehaviour {

    void OnGUI () {
        if(GUI.Button(new Rect(10, 10, 150, 50), "Play Clip"))
            AudioPlayer.instance.PlayClip();

         if(GUI.Button(new Rect(10, 70, 150, 50), "Stop Clip"))
            AudioPlayer.instance.StopClip();
    }
}