BITKit/Packages/Runtime~/Unity/Scripts/AudioSystem/AudioSO.cs

47 lines
1.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if MIRROR
using Mirror;
#endif
namespace BITKit
{
#if MIRROR
public static class AudioSOExtensions
{
public static Dictionary<int, AudioSO> dictionary = new();
[RuntimeInitializeOnLoadMethod]
static void Reload()
{
dictionary.Clear();
}
/* public static void Write(this NetworkWriter writer, AudioClip value)
{
writer.Write(value.name);
}
public static AudioClip ReadAudioClip(this NetworkReader reader)
{
return Data.Get<AudioClip>(reader.ReadString());
} */
public static void WriteAudioSO(this NetworkWriter writer, AudioSO value)
{
writer.Write(value.instanceID);
}
public static AudioSO ReadAudioSO(this NetworkReader reader)
{
return AudioSOExtensions.dictionary[reader.ReadInt()];
}
}
#endif
public class AudioSO : ScriptableObject
{
public AudioClip[] clips;
public float distance;
public bool loop;
public AudioClip Get()
{
return clips.Random();
}
public int instanceID;
}
}