Repository URL to install this package:
Version:
1.3.1 ▾
|
using System;
using System.Collections.Generic;
using System.Linq;
using Fluctio.FluctioSim.Utils.Extensions;
using UnityEngine;
namespace Fluctio.FluctioSim.Utils.SerializableClasses
{
[Serializable]
public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, ISerializationCallbackReceiver
{
[SerializeField] private TKey[] keys;
[SerializeField] private TValue[] values;
public void OnBeforeSerialize()
{
keys = Keys.ToArray();
values = Values.ToArray();
}
public void OnAfterDeserialize()
{
Clear();
var pairs = LinqExtensions.ZipKeyValue(keys, values);
foreach (var pair in pairs)
{
this[pair.Key] = pair.Value;
}
keys = null;
values = null;
}
}
}