serializereferenceeditor
serializereferenceeditor copied to clipboard
Unity SerializeReference Editor
Unity SerializeReference Property Drawer
Convenient property drawer for fields marked with the SerializeReference attribute.
Installation
Installation as a unity module via a git link in PackageManager or direct editing of `Packages/manifest' is supported.json:
"com.elmortem.serializereferenceeditor": "https://github.com/elmortem/serializereferenceeditor.git",
Main types
SRAttribute
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.
Example:
[SerializeReference]
[SR]
public List<AbstractData> DataList = new List<AbstractData>();
Result:

Additional features
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;
}
}
SRNameAttribute
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
.
Tools
MissingTypesValidator
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
SRMissingTypesValidatorConfig
is required to work. If necessary, you can implement your ownIAssetMissingTypeReport
for error reporting if you use it in CI/CD systems. You can also implement your ownIAssetsLoader
if the defaultLoadAllScriptableObjects
is not suitable for you.
Support Unity 2019.3 or later.
Use for free.
Enjoy!