Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 854b189

Browse files
A culprit has been discovered
1 parent 9898fd9 commit 854b189

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/UnityExtension/Assets/Editor/GitHub.Unity/SerializableDictionary.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Linq;
34
using UnityEngine;
45

56

@@ -42,25 +43,25 @@ public void OnAfterDeserialize()
4243
}
4344

4445
[Serializable]
45-
public class ArrayContainer<T>
46+
public class ArrayContainer
4647
{
4748
[SerializeField]
48-
public T[] Values = new T[0];
49+
public object[] Values = new object[0];
4950
}
5051

5152
[Serializable]
5253
public class SerializableNestedDictionary<TKey, TValue> : Dictionary<TKey, Dictionary<TKey, TValue>>, ISerializationCallbackReceiver
5354
{
5455
[SerializeField] private TKey[] keys = new TKey[0];
55-
[SerializeField] private ArrayContainer<TKey>[] subKeys = new ArrayContainer<TKey>[0];
56-
[SerializeField] private ArrayContainer<TValue>[] subKeyValues = new ArrayContainer<TValue>[0];
56+
[SerializeField] private ArrayContainer[] subKeys = new ArrayContainer[0];
57+
[SerializeField] private ArrayContainer[] subKeyValues = new ArrayContainer[0];
5758

5859
// save the dictionary to lists
5960
public void OnBeforeSerialize()
6061
{
6162
var keyList = new List<TKey>();
62-
var subKeysList = new List<ArrayContainer<TKey>>();
63-
var subKeysValuesList = new List<ArrayContainer<TValue>>();
63+
var subKeysList = new List<ArrayContainer>();
64+
var subKeysValuesList = new List<ArrayContainer>();
6465

6566
foreach (var pair in this)
6667
{
@@ -77,8 +78,8 @@ public void OnBeforeSerialize()
7778
serializeSubKeyValues.Add(subPair.Value);
7879
}
7980

80-
subKeysList.Add(new ArrayContainer<TKey> { Values = serializeSubKeys.ToArray() });
81-
subKeysValuesList.Add(new ArrayContainer<TValue> { Values = serializeSubKeyValues.ToArray() });
81+
subKeysList.Add(new ArrayContainer { Values = serializeSubKeys.Cast<object>().ToArray() });
82+
subKeysValuesList.Add(new ArrayContainer { Values = serializeSubKeyValues.Cast<object>().ToArray() });
8283
}
8384

8485
keys = keyList.ToArray();

0 commit comments

Comments
 (0)