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
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)
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Memory leak when a lot of UI elements are spawned and despawned
- Warnings are not logged in the Console window when using external code analyzers
- Errors “TLS Allocator ALLOC_TEMP_TLS, underlying allocator ALLOC_TEMP_MAIN has unfreed allocations, size 288“ appear constantly when Prefab is open
- Crash on PPtr<Shader>::operator or NullException errors spammed in console when calling Dispose() on null GraphicsBuffer with baked Reflection Probes
- “EndRenderPass: Not inside a Renderpass” and other Render Graph errors in the Player when Render Graph is enabled and Overlay UI is used
Add comment