using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Unity.VisualScripting.FullSerializer; using UnityEngine; namespace Unity.VisualScripting { public sealed class FakeSerializationCloner : ReflectedCloner { public fsConfig config { get; set; } = new fsConfig(); public override void BeforeClone(Type type, object original) { (original as ISerializationCallbackReceiver)?.OnBeforeSerialize(); } public override void AfterClone(Type type, object clone) { (clone as ISerializationCallbackReceiver)?.OnAfterDeserialize(); } protected override IEnumerable GetMembers(Type type) { return fsMetaType.Get(config, type).Properties.Select(p => p._memberInfo); } } }