using System; using System.Collections.Generic; using System.Linq; using UnityEngine; namespace Assets.HeroEditor4D.Common.Scripts.Collections { /// /// Global object that automatically grabs all required images. /// [CreateAssetMenu(fileName = "FirearmCollection", menuName = "HeroEditor4D/FirearmCollection")] public class FirearmCollection : ScriptableObject { public string Id; public List FirearmParams; public static bool AutoInitialize = true; public static Dictionary Instances = new Dictionary(); [RuntimeInitializeOnLoadMethod] public static void RuntimeInitializeOnLoad() { if (AutoInitialize) { Initialize(); } } public static void Initialize() { Instances = Resources.LoadAll("").ToDictionary(i => i.Id, i => i); } } [Serializable] public class FirearmParams { public string Name; public float FireMuzzlePosition; public ParticleSystem FireMuzzlePrefab; public AudioClip ShotSound; public AudioClip ReloadSound; } }