Search Issue Tracker

Fixed in 10.2.0

Votes

0

Found in [Package]

10.1.0, 8.2.0

Issue ID

1287257

Regression

No

[HDRP] Exception thrown when Undo and Redo operation is performed with the duplicate environment under "Environment Library

Package: Scriptable Render Pipeline HD

-

When Undo and Redo operation is performed with the duplicated empty environment under "Environment Library" causes the editor to throw NullReferenceException and ArgumentException in the Console, Refer attached video

Steps to repro:
1. Create a new project with HDRP Template
2. Window > Render Pipeline > Look Dev
3. Select the "Environment" tab > New Library > Load Library
4. Add new empty environment (+)
5. Duplicate environment currently selected
6. Edit > Undo Duplicate Environment > Undo Add Environment
7. Edit > Redo Create Object > Redo Create Object

Actual Result:
Exception is thrown when Undo and Redo operation is performed with the duplicate empty environment in the Look Dev window

Expected Result:
Undo and Redo operation is performed gracefully

Note: Undo and Redo operation functionality for Empty Environment under Environment Library is introduced in package version 8.2.0

Reproducible in:
2020.2.0b9, 2020.1.11f1 with package version 10.1.0, 10.0.0-preview.27, 9.0.0-preview.54, 8.2.0

Environment:
Windows 10 and macOS 10.15

Stack trace:
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.Rendering.LookDev.EnvironmentElement.GetLatLongThumbnailTexture (UnityEditor.Rendering.LookDev.Environment environment, System.Int32 width) (at Library/PackageCache/com.unity.render-pipelines.core@10.1.0/Editor/LookDev/Environment.cs:310)
UnityEditor.Rendering.LookDev.DisplayWindow+<>c.<CreateEnvironment>b__39_2 (UnityEngine.UIElements.VisualElement e, System.Int32 i) (at Library/PackageCache/com.unity.render-pipelines.core@10.1.0/Editor/LookDev/DisplayWindow.EnvironmentLibrarySidePanel.cs:90)
UnityEngine.UIElements.ListView.Setup (UnityEngine.UIElements.ListView+RecycledItem recycledItem, System.Int32 newIndex) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.ListView.ResizeHeight (System.Single height) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.ListView.Refresh () (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.ListView.set_itemsSource (System.Collections.IList value) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEditor.Rendering.LookDev.DisplayWindow.RefreshLibraryDisplay () (at Library/PackageCache/com.unity.render-pipelines.core@10.1.0/Editor/LookDev/DisplayWindow.EnvironmentLibrarySidePanel.cs:273)
UnityEditor.Rendering.LookDev.DisplayWindow.UnityEditor.Rendering.LookDev.IEnvironmentDisplayer.Repaint () (at Library/PackageCache/com.unity.render-pipelines.core@10.1.0/Editor/LookDev/DisplayWindow.EnvironmentLibrarySidePanel.cs:436)
UnityEditor.Rendering.LookDev.DisplayWindow.FullRefreshEnvironmentList () (at Library/PackageCache/com.unity.render-pipelines.core@10.1.0/Editor/LookDev/DisplayWindow.EnvironmentLibrarySidePanel.cs:479)
UnityEditor.Undo.Internal_CallUndoRedoPerformed () (at <27ac941b3da34983800e9a41b73eceef>:0)

ArgumentException: VisualElements are not siblings
UnityEngine.UIElements.VisualElement.PlaceBehind (UnityEngine.UIElements.VisualElement sibling) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.ListView.Setup (UnityEngine.UIElements.ListView+RecycledItem recycledItem, System.Int32 newIndex) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.ListView.ResizeHeight (System.Single height) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.ListView.OnSizeChanged (UnityEngine.UIElements.GeometryChangedEvent evt) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.EventCallbackFunctor`1[TEventType].Invoke (UnityEngine.UIElements.EventBase evt) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.EventCallbackRegistry.InvokeCallbacks (UnityEngine.UIElements.EventBase evt) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.EventDispatchUtilities.PropagateEvent (UnityEngine.UIElements.EventBase evt) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.DefaultDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.EventDispatcher.OpenGate () (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.UIRLayoutUpdater.Update () (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.VisualTreeUpdater.UpdateVisualTreePhase (UnityEngine.UIElements.VisualTreeUpdatePhase phase) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.Panel.ValidateLayout () (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <519636828bf44b44aa4c317f8b947afe>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <931b26b61f444e3485195721b0227b20>:0)

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.