// Copyright (c) Pixel Crushers. All rights reserved. using UnityEngine; namespace PixelCrushers.QuestMachine { /// /// AudioClip UI content. /// public class AudioClipQuestContent : QuestContent { [Tooltip("Audio clip to play.")] [SerializeField] private AudioClip m_audioClip; [Tooltip("Audio source to use.")] [SerializeField] private QuestAudioSourceIdentifier m_useAudioSourceOn = new QuestAudioSourceIdentifier(); [HideInInspector] [SerializeField] private string m_audioNameProxy; // Temporary variable for proxy serialization. /// /// Audio clip to play. /// public AudioClip audioClip { get { return m_audioClip; } set { m_audioClip = value; } } /// /// Identifies the audio source to use. /// public QuestAudioSourceIdentifier useAudioSourceOn { get { return m_useAudioSourceOn; } set { m_useAudioSourceOn = value; } } public override string GetEditorName() { return (audioClip == null) ? "Audio Clip" : "Audio Clip: " + audioClip.name; } public override void OnBeforeProxySerialization() { base.OnBeforeProxySerialization(); m_audioNameProxy = QuestMachine.GetAudioClipPath(m_audioClip); } public override void OnAfterProxyDeserialization() { base.OnAfterProxyDeserialization(); m_audioClip = QuestMachine.GetAudioClip(m_audioNameProxy); m_audioNameProxy = null; // Free memory. } public override AudioClip[] GetAudioClips() { return new AudioClip[] { audioClip }; } } }