65 lines
1.4 KiB
C#
65 lines
1.4 KiB
C#
using DarkTonic.MasterAudio;
|
|
using UnityEngine;
|
|
|
|
[CreateAssetMenu(fileName = "AudioSampleSO", menuName = "UFS2/Audio/Create Audio", order = 1)]
|
|
public class AudioScriptableObject : ScriptableObject
|
|
{
|
|
public string clipName;
|
|
|
|
[Range(-3f, 3f)]
|
|
public float pitch = 1f;
|
|
|
|
[Range(0f, 1f)]
|
|
public float volume = 1f;
|
|
|
|
public bool loop;
|
|
|
|
[Range(0f, 100f)]
|
|
public int maxDistance = 50;
|
|
|
|
private PlaySoundResult sound;
|
|
|
|
public void Play(Transform transform)
|
|
{
|
|
sound = MasterAudio.PlaySound3DAtTransform(clipName, transform, volume, pitch);
|
|
if (sound != null)
|
|
{
|
|
sound.ActingVariation.VarAudio.loop = loop;
|
|
sound.ActingVariation.VarAudio.maxDistance = maxDistance;
|
|
}
|
|
}
|
|
|
|
public void Play2D()
|
|
{
|
|
sound = MasterAudio.PlaySound(clipName, volume, pitch);
|
|
if (sound != null)
|
|
{
|
|
sound.ActingVariation.VarAudio.loop = loop;
|
|
}
|
|
}
|
|
|
|
public void PlayMultiplier(float value, Transform transform)
|
|
{
|
|
sound = MasterAudio.PlaySound3DAtTransform(clipName, transform, volume + volume * value, pitch + pitch * value);
|
|
if (sound != null)
|
|
{
|
|
sound.ActingVariation.VarAudio.loop = loop;
|
|
sound.ActingVariation.VarAudio.maxDistance = maxDistance;
|
|
}
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
MasterAudio.StopAllOfSound(clipName);
|
|
sound = null;
|
|
}
|
|
|
|
public void SetPitchVolume(float pitch, float volume)
|
|
{
|
|
if (sound != null)
|
|
{
|
|
sound.ActingVariation.VarAudio.pitch = this.pitch + pitch;
|
|
}
|
|
}
|
|
}
|