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

47 lines
1.2 KiB
C#
Raw Normal View History

2023-06-05 19:57:17 +08:00
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
2023-06-29 14:57:11 +08:00
public class AudioSO : ScriptableObject
2023-06-05 19:57:17 +08:00
{
public AudioClip[] clips;
public float distance;
public bool loop;
public AudioClip Get()
{
return clips.Random();
}
public int instanceID;
}
}