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:

  1. Import the attached pacakge
  2. Open Disco Scene from Repro folder
  3. In Assets folder, create a new vfx graph (named New VFX)
  4. Open New VFX from Assets folder
  5. Open Open VFX'sie vfx from Repro folder
  6. Make sure that opened graphs are placed side by side
  7. In project browser, delete VFX'sie
  8. in VFX 'No Asset' window, select Create new Visual Effect Graph
  9. 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

  1. {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.