Search Issue Tracker
Not Reproducible
Votes
0
Found in
5.3.4f1
Issue ID
783176
Regression
No
Serialized dictionary Is Throwing Index Out of Range error on 13th item
Steps to reproduce:
1. Download and open attached project " SerializeDictionaryError.zip"
2. Open and play scene "Battle"
3. Notice the error
4. Open "Helmets.csv" file located at Assets/Resources/ExcelData
5. Change it so it only has 12 items in it (deleting one random line works) and save it
6. Select object "Database" in hierarchy and press "Update Database" button in top most script component
7. Play scene again and notice that error is gone
Actual result: Error is thrown if serialized dictionary has more than 12 elements
Expected result: No error
Note: User outlines that error is caused by "foreach(KeyValuePair<TKey,TValue> pair in this)" line
Tested and reproduced on:
Windows 10
Unity 5.1.4f1, 5.2.4p1, 5.3.4p1, 5.4.0b12
Comments (1)
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Graphics Settings: “Use Defaults” checkboxes misaligned in Tier Settings section
- VFX Graph particles are not culled when using URP and Frustum Culling is enabled on VFX Mesh Output
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
faviann
Apr 20, 2016 19:40
For people wondering how this issue is caused (concurrency problem mainly), have a look at: http://forum.unity3d.com/threads/iserializationcallbackreceiver-throwing-exceptions.329917/#post-2167896
Nice explanation covering how encapsulation is needed to serialize the dictionary instead of a inheritance.