diff --git a/Assets/Fungus/Scripts/Commands/PlayAmbienceSound.cs b/Assets/Fungus/Scripts/Commands/PlayAmbienceSound.cs
new file mode 100644
index 00000000..c893dd2f
--- /dev/null
+++ b/Assets/Fungus/Scripts/Commands/PlayAmbienceSound.cs
@@ -0,0 +1,69 @@
+// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
+// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
+
+using UnityEngine;
+
+namespace Fungus
+{
+ ///
+ /// Plays a once-off sound effect. Multiple sound effects can be played at the same time.
+ ///
+ [CommandInfo("Audio",
+ "Play Ambience Sound",
+ "Plays a once-off sound effect. Multiple sound effects can be played at the same time.")]
+ [AddComponentMenu("")]
+ public class PlayAmbienceSound : Command
+ {
+ [Tooltip("Sound effect clip to play")]
+ [SerializeField]
+ protected AudioClip soundClip;
+
+ [Range(0, 1)]
+ [Tooltip("Volume level of the sound effect")]
+ [SerializeField]
+ protected float volume = 1;
+
+ [Tooltip("Sound effect clip to play")]
+ [SerializeField]
+ protected bool loop;
+
+ protected virtual void DoWait()
+ {
+ Continue();
+ }
+
+ #region Public members
+
+ public override void OnEnter()
+ {
+ if (soundClip == null)
+ {
+ Continue();
+ return;
+ }
+
+ var musicManager = FungusManager.Instance.MusicManager;
+
+ musicManager.PlayAmbienceSound(soundClip, loop, volume);
+
+ Continue();
+ }
+
+ public override string GetSummary()
+ {
+ if (soundClip == null)
+ {
+ return "Error: No sound clip selected";
+ }
+
+ return soundClip.name;
+ }
+
+ public override Color GetButtonColor()
+ {
+ return new Color32(242, 209, 176, 255);
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Fungus/Scripts/Components/MusicManager.cs b/Assets/Fungus/Scripts/Components/MusicManager.cs
index c89744e8..9b969490 100644
--- a/Assets/Fungus/Scripts/Components/MusicManager.cs
+++ b/Assets/Fungus/Scripts/Components/MusicManager.cs
@@ -74,6 +74,20 @@ namespace Fungus
audioSource.PlayOneShot(soundClip, volume);
}
+ ///
+ /// Plays a sound effect with optional looping values, at the specified volume.
+ ///
+ /// The sound effect clip to play.
+ /// If the audioclip should loop or not.
+ /// The volume level of the sound effect.
+ public virtual void PlayAmbienceSound(AudioClip soundClip, bool loop, float volume)
+ {
+ audioSource.loop = loop;
+ audioSource.clip = soundClip;
+ audioSource.volume = volume;
+ audioSource.Play();
+ }
+
///
/// Shifts the game music pitch to required value over a period of time.
///