using System.Collections; using System.Collections.Generic; using UnityEngine; namespace RuntimeSet { public abstract class RuntimeSetSO : ScriptableObject, IEnumerable { [HideInInspector] [SerializeField] private List items = new(); protected IReadOnlyCollection Items => items; public bool IsEmpty => items.Count == 0; public int Count => items.Count; public void Add(T item) { if (!items.Contains(item)) { items.Add(item); } } public void Remove(T item) { if (items.Contains(item)) { items.Remove(item); } } public IEnumerator GetEnumerator() { return items.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } }