using System.Collections; using System.Collections.Generic; using UniLinq; using UnityEngine; namespace ConformalDecals.Tweakables { public class TweakableDataCollection : IEnumerable, ISerializationCallbackReceiver { public readonly Dictionary tweakables = new Dictionary(); [SerializeField] private TweakableData[] _serializedTweakables; public IEnumerator GetEnumerator() { return tweakables.Values.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } public void OnBeforeSerialize() { _serializedTweakables = tweakables.Values.ToArray(); } public void OnAfterDeserialize() { foreach (var tweakable in _serializedTweakables) { tweakables.Add(tweakable.name, tweakable); } } } }