0
Fixed

Compatibility with Unity 2018.2

shottogan 1 year ago updated by Lazlo Bonin (Lead Developer) 2 months ago 8

Viewing a GameObject with a Custom Recorder component causes the following error with every scroll of the Inspector window:

NullReferenceException: Object reference not set to an instance of an object
Chronos.ReorderableList.ReorderableListControl.PrepareState (System.Int32 controlID, Chronos.ReorderableList.IReorderableListAdaptor adaptor) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:586)
Chronos.ReorderableList.ReorderableListControl.Draw (System.Int32 controlID, Chronos.ReorderableList.IReorderableListAdaptor adaptor, Chronos.ReorderableList.ReorderableListControl+DrawEmpty drawEmpty) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:1376)
Chronos.ReorderableList.ReorderableListControl.DrawControlFromState (Chronos.ReorderableList.IReorderableListAdaptor adaptor, Chronos.ReorderableList.ReorderableListControl+DrawEmpty drawEmpty, Chronos.ReorderableList.ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:184)
Chronos.ReorderableList.ReorderableListGUI.DoListField (UnityEditor.SerializedProperty arrayProperty, System.Single fixedItemHeight, Chronos.ReorderableList.ReorderableListControl+DrawEmpty drawEmpty, Chronos.ReorderableList.ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListGUI.cs:358)
Chronos.ReorderableList.ReorderableListGUI.ListField (UnityEditor.SerializedProperty arrayProperty, Chronos.ReorderableList.ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListGUI.cs:396)
Chronos.CustomRecorderEditor.OnInspectorGUI () (at Assets/Chronos/Source/Editor/CustomRecorderEditor.cs:24)
UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor[] editors, System.Int32 editorIndex, System.Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1374)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

This happens with both Scripting Runtime Versions .NET 3.5 Equivalent and .NET 4.0 Equivalent

Chronos Version:
2.4.13
Unity Version:
2018.2.0

* .NET 4.x Equivalent

+2
Working on fix

Unity changed a method ReorderableList needed, working on fix!

Hey, I thought that Chronos v2.4.14 fixed this but it's still happening.
Same error as above and this is what it looks like in the inspector:


Thanks!

+1

Hello there,

Got this error too.
I'd be glad if this was fixed, as I'm heavily relying on ReorderableLists in my project.

I can't find anything in Unity docs about this method that has changed!

-3
Fixed

Hi guys, can you confirm you're still getting this issue in v.2.4.14? It should have been fixed.

(Unity v2018.2.5)

This still happens (on new GameObject as well.. with just a Timeline and Custom Recorder):

NullReferenceException: Object reference not set to an instance of an object
Chronos.ReorderableList.ReorderableListControl.PrepareState (Int32 controlID, IReorderableListAdaptor adaptor) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:586)
Chronos.ReorderableList.ReorderableListControl.Draw (Int32 controlID, IReorderableListAdaptor adaptor, Chronos.ReorderableList.DrawEmpty drawEmpty) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:1376)
Chronos.ReorderableList.ReorderableListControl.DrawControlFromState (IReorderableListAdaptor adaptor, Chronos.ReorderableList.DrawEmpty drawEmpty, ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:184)
Chronos.ReorderableList.ReorderableListGUI.DoListField (UnityEditor.SerializedProperty arrayProperty, Single fixedItemHeight, Chronos.ReorderableList.DrawEmpty drawEmpty, ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListGUI.cs:358)
Chronos.ReorderableList.ReorderableListGUI.ListField (UnityEditor.SerializedProperty arrayProperty, ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListGUI.cs:396)
Chronos.CustomRecorderEditor.OnInspectorGUI () (at Assets/Chronos/Source/Editor/CustomRecorderEditor.cs:24)
UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor[] editors, Int32 editorIndex, Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1374)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)


This still happens to me same as @shottogan

I am using Chronos v.2.4.14 and Unity v2018.3.0f2

NullReferenceException: Object reference not set to an instance of an object
Chronos.ReorderableList.ReorderableListControl.PrepareState (System.Int32 controlID, Chronos.ReorderableList.IReorderableListAdaptor adaptor) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:586)
Chronos.ReorderableList.ReorderableListControl.Draw (System.Int32 controlID, Chronos.ReorderableList.IReorderableListAdaptor adaptor, Chronos.ReorderableList.ReorderableListControl+DrawEmpty drawEmpty) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:1376)
Chronos.ReorderableList.ReorderableListControl.DrawControlFromState (Chronos.ReorderableList.IReorderableListAdaptor adaptor, Chronos.ReorderableList.ReorderableListControl+DrawEmpty drawEmpty, Chronos.ReorderableList.ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListControl.cs:184)
Chronos.ReorderableList.ReorderableListGUI.DoListField (UnityEditor.SerializedProperty arrayProperty, System.Single fixedItemHeight, Chronos.ReorderableList.ReorderableListControl+DrawEmpty drawEmpty, Chronos.ReorderableList.ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListGUI.cs:358)
Chronos.ReorderableList.ReorderableListGUI.ListField (UnityEditor.SerializedProperty arrayProperty, Chronos.ReorderableList.ReorderableListFlags flags) (at Assets/Chronos/Source/Dependencies/ReorderableList/Editor/ReorderableListGUI.cs:396)
Chronos.CustomRecorderEditor.OnInspectorGUI () (at Assets/Chronos/Source/Editor/CustomRecorderEditor.cs:24)
UnityEditor.InspectorWindow.DoOnInspectorGUI (System.Boolean rebuildOptimizedGUIBlock, UnityEditor.Editor editor, System.Boolean wasVisible, UnityEngine.Rect& contentRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1625)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

Hi everyone,

Sorry for the very late reply on this.

It seems like the fix I had initially pushed wasn't sufficient.

A new fix is currently being uploaded in version 2.4.15.

In the mean time, you can change:

GUIHelper.cs, line 20:

var piVisibleRect = tyGUIClip.GetProperty("visibleRect", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);