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; } } }