Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/AudioScriptableObject.cs
2026-03-04 10:03:45 +08:00

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