Files
beyond/Assets/Plugins/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Subasset/Quest Content/AudioClipQuestContent.cs
2024-11-20 15:21:28 +01:00

70 lines
1.8 KiB
C#

// Copyright (c) Pixel Crushers. All rights reserved.
using UnityEngine;
namespace PixelCrushers.QuestMachine
{
/// <summary>
/// AudioClip UI content.
/// </summary>
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.
/// <summary>
/// Audio clip to play.
/// </summary>
public AudioClip audioClip
{
get { return m_audioClip; }
set { m_audioClip = value; }
}
/// <summary>
/// Identifies the audio source to use.
/// </summary>
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 };
}
}
}