Convenient property drawer for fields marked with the SerializeReference attribute.
Download asset from Unity Asset Store: Serialize Reference Editor
Or installation as a unity module via a git link in PackageManager:
https://github.com/elmortem/serializereferenceeditor.git?path=SerializeReferenceEditor/Assets/SREditor/Package
Or direct editing of Packages/manifest is supported.json:
"com.elmortem.serializereferenceeditor": "https://github.com/elmortem/serializereferenceeditor.git?path=SerializeReferenceEditor/Assets/SREditor/Package",
Use 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.
[SerializeReference, SR]
public List<AbstractData> DataList = new List<AbstractData>();You 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;
}
}Mark classes with them if you want to customize the display name and nesting hierarchy in the search tree for a specific type.
Example FloatData.cs:
[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.
You 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 run
Tools -> SREditor -> Check MissingTypes
At least one
SRMissingTypesValidatorConfigis required to work. If necessary, you can implement your ownIAssetMissingTypeReportfor error reporting if you use it in CI/CD systems. You can also implement your ownIAssetsLoaderif the defaultLoadAllScriptableObjectsis not suitable for you.
Support Unity 2021.3 or later.
Use for free.
Enjoy!
