mirror of
https://github.com/maxartz15/UnitySerializedReferenceUI.git
synced 2024-12-22 15:38:28 +01:00
The UI for Unity's SerealizedReference attribute. It allows to change the instance type of field right in editor.
Core | ||
DefaultAttributes | ||
DefaultUI | ||
Samples~ | ||
.gitignore | ||
Core.meta | ||
DefaultAttributes.meta | ||
DefaultUI.meta | ||
LICENSE.txt | ||
LICENSE.txt.meta | ||
package.json | ||
package.json.meta | ||
README.md | ||
README.md.meta | ||
Textus.SerializeReferenceUI.asmdef | ||
Textus.SerializeReferenceUI.asmdef.meta |
UnitySerializedReferenceUI
The UI for Unity's SerealizedReference attribute. It allows to change the instance type of field right in editor.
Project is provided under Mit license which you can find in inner main folder ("SerializedReferenceUI")
Known limitations.
- Custom property drawer has no effect. Becouse property is drawn from custom attribute drawer custom property drawer is not applied (unity default behaviour).
- Can not serialized types derived from UnityEngine.Object (monbehaviour, scriptableObject) (unity's limitation).
- Can not create instance of class that does not have empty constructor(only have private for example).
Known Issues of serialized reference:
- Renaming used type can produce data loss and throws unknown managed type exception. This is unity's bug.
- SerializeReference itself is not working properly with Prefab Instances;
Future plans: Possibly
- copy / paste.
- menu with searchbar.
Installation
Use the + inside the Package Manager window and add this URL: https://github.com/TextusGames/UnitySerializedReferenceUI.git
Or add id to your packages.json
file manually (located inside the project's Packages folder).
"com.textus-games.serialized-reference-ui": "https://github.com/TextusGames/UnitySerializedReferenceUI.git"
Example
[Serializable]
public class Slot
{
[SerializeReference, SerializeReferenceButton]
public Item item;
}
[Serializable]
public class Item {}
public class Metal : Item {}
public class Wood : Item {}
For more examples, this package contains two Samples that can be imported into your project.