Search Issue Tracker

Fixed

Fixed in 2023.2.0b8, 2023.3.0a1

Votes

0

Found in

2023.2.0a20

2023.3.0a1

Issue ID

UUM-41334

Regression

Yes

VFX gets corrupted when trying to replace existing graph during save

--

-

How to reproduce:
# Import the attached pacakge
# Open Disco Scene from Repro folder
# In Assets folder, create a new vfx graph (named New VFX)
# Open New VFX from Assets folder
# Open Open VFX'sie vfx from Repro folder
# Make sure that opened graphs are placed side by side
# In project browser, delete VFX'sie
# in VFX 'No Asset' window, select Create new Visual Effect Graph
# When Save as window pops up save it with New VFX name and agree to replace existing asset
#
h4. Try opening New VFX from project browser, you should get this error

# {color:#FF0000}Exception thrown while invoking [OnOpenAssetAttribute] method 'VisualEffectAssetEditor:OnOpenVFX (int,int)' : NullReferenceException: VFXMemorySerializer::StoreObject failure{color}

Actual result: VFX Graph is corrupted and errors are thrown 

Note: No repro on 2022.3, haven't checked 2023.1

 

Error logs:

NullReferenceException: VFXMemorySerializer::StoreObject failure.
UnityEditor.VFX.VFXMemorySerializer.StoreObjectsToByteArray (UnityEngine.ScriptableObject[] objects, UnityEngine.CompressionLevel compressionLevel) (at <4e8f4f133ae54971a121c59a7ef6acae>:0)
UnityEditor.VFX.VFXGraphPreprocessor.OnCompileResource (UnityEditor.VFX.VisualEffectResource resource) (at C:/Users/vitaskruibyte/Documents/unity/packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs:126)
UnityEditor.VFX.VisualEffectResource.CompileResource () (at <4e8f4f133ae54971a121c59a7ef6acae>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

 

InvalidOperationException: Sequence contains more than one matching element
System.Linq.Enumerable.SingleOrDefault[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate) (at <418ca55feb5e4d8a82dd99e6126f4b88>:0)
UnityEditor.VFX.UI.VFXViewWindow.GetWindowLambda (System.Func`2[T,TResult] func, System.Boolean createIfNeeded, System.Boolean show)

 

Exception thrown while invoking [OnOpenAssetAttribute] method 'VisualEffectAssetEditor:OnOpenVFX (int,int)' : NullReferenceException: VFXMemorySerializer::StoreObject failure.
UnityEditor.VFX.VFXMemorySerializer.StoreObjectsToByteArray (UnityEngine.ScriptableObject[] objects, UnityEngine.CompressionLevel compressionLevel) (at <4e8f4f133ae54971a121c59a7ef6acae>: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.