Search Issue Tracker

By Design

Votes

0

Found in

2018.3.0b3

2018.3.0b5

Issue ID

1087972

Regression

Yes

API changes caused regression in WindowHelper+R_DockArea.AddTab (UnityEditor.EditorWindow pane

uGUI

-

I'm testing one of the top grossing assets on the A$: Amplify Shader.
Some chages introduced in the UnityEditor.EditorWindow causes the package to throw a Null Reference Exception now:
NullReferenceException: Object reference not set to an instance of an object
WindowHelper+R_DockArea.AddTab (UnityEditor.EditorWindow pane) (at Assets/AmplifyShaderEditor/Plugins/Editor/Utils/WindowHelper.cs:62)
WindowHelper.AddTab (UnityEditor.EditorWindow existingWindow, UnityEditor.EditorWindow newWindow) (at Assets/AmplifyShaderEditor/Plugins/Editor/Utils/WindowHelper.cs:149)
AmplifyShaderEditor.AmplifyShaderEditorWindow.ConvertShaderToASE (UnityEngine.Shader shader) (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/AmplifyShaderEditorWindow.cs:379)
UnityEditor.CustomShaderInspector.OnInspectorGUI () (at Assets/AmplifyShaderEditor/Plugins/Editor/Utils/CustomShaderInspector.cs:233)
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:1599)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

This prevents a button from opening the script in the graph editor.

Repro steps:
-open this project
-go to the Examples folder- you will see a few examples there.
-double-click on the shader object - that should open the graph editor
-in the inspector, while selecting the shader object, you will also find a button "open in Shader Editor" - that button also throws the same exception.

  1. Resolution Note (2018.3.X):

    The asset uses undocumented internal APIs via c# reflection hack - see line 61: https://github.com/Daydam/Seminario-2.0/blob/master/Assets/Additional%20packages/AmplifyShaderEditor/Plugins/Editor/Utils/WindowHelper.cs
    Unity does not guarantee backward compatibility for such cases. Internal APIs are subject to change without notice and developers should be prepared to update their assets to maintain compatibility with future Unity versions.

    As such, I've contacted the A$ developer and he agreed to push an update with the fix instead soon.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.