Convenient proprty drawer for fields marked with the SerializeReference attribute for serializing custom data types into Prefabs and Scriptable Objects.Note: Please, remove old version Serialize Reference Editor for Unity before update!Serialize Reference Editor is a powerful Unity tool that solves the critical challenge of working with SerializeReference attribute by providing an intuitive interface for editing complex polymorphic data directly in the Unity Inspector.Key Features:Convenient editing of SerializeReference objects using SRAttribute and SRNameAttributeSupport for lists, arrays, and nested data structuresFlexible rule system for customizing object creationBuilt-in MissingTypesValidator for detecting missing typesCustomizable type names and hierarchy display for improved navigationPerfect for:Developing systems with polymorphic dataCreating editor toolsWorking with modular architectureManaging game configurationsSaves development time and reduces errors when working with serialized data. Compatible with Unity 2021.3 and later.Main typesSRAttributeUse it to mark the fields that you want to edit. Important note - they should also be marked with the SerializeReference attribute. You can mark the base type (including the interface) with it.Allows you to change an array, a list, and a single element. Displays the current field type.Example:[SerializeReference][SR]public List DataList = new List();Additional featuresYou can override SRAttribute and implement a rule for processing instantiated objects.You can see an example in SRDemoAttribute.cs, where the OnCreate method was overriden:public override void OnCreate(object instance){ if(instance is AbstractData) { ((AbstractData)instance).DataName = instance.GetType().Name; }}SRNameAttributeMark classes with them if you want to customize the display name and nesting hierarchy in the search tree for a specific type.Example:[SRName("Data/Simple types/Float")]public class FloatData : AbstractData{ [Range(0f, 1f)] public float Float;}You can modify the display settings for the class name without specifying an attribute by navigating to Edit -> Project Settings -> SREditor.SRDrawerA key utility class for rendering SerializeReference fields with enhanced functionality.Example:[CustomPropertyDrawer(typeof(CustomData))]public class CustomDataDrawer : PropertyDrawer{ private SRDrawer _drawer = new(); public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { var dataProperty = property.FindPropertyRelative("Data"); _drawer.Draw(position, dataProperty, label); }}ToolsMissingTypesValidatorYou can use the built-in tool to search for lost types.(this error occurs if the serialized data stores information about a type that no longer exists and could have been deleted during development). To start, you can runTools -> SREditor -> Check MissingTypes> At least one SRMissingTypesValidatorConfig is required to work.If necessary, you can implement your own IAssetMissingTypeReport for errorreporting if you use it in CI/CD systems.You can also implement your own IAssetsLoader if the default LoadAllScriptableObjects is not suitable for you.Class ReplacerA utility tool for replacing SerializeReference classes.Access through Tools -> SREditor -> Class ReplacerFormerlySerializedType attributeAn analogue of FormerlySerializedAs attribute for SerializeReference classes, helping maintain serialization when class names change.Example:[Serializable, SRName("New Test")][FormerlySerializedType("SRDemo, Demo.OldTestData")]public class NewTestData : BaseTestDataDuplicate CleanerAutomatic detection and handling of SerializeReference object duplicates with configurable settings:Nullify duplicatesCreate defaultsMake deep copiesThis prevents issues with unwanted reference sharing in assets.Support Unity 2021.3 or later.The package icon base is generated in Stable Diffusion.The package description is translated into English using Claude Sonnet.