diff --git a/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Editor/SubclassSelectorDrawer.cs b/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Editor/SubclassSelectorDrawer.cs index 3525a37..0e5f746 100644 --- a/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Editor/SubclassSelectorDrawer.cs +++ b/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Editor/SubclassSelectorDrawer.cs @@ -63,7 +63,6 @@ namespace MackySoft.SerializeReferenceExtensions.Editor { Type baseType = property.GetManagedReferenceFieldType(); var popup = new AdvancedTypePopup( TypeCache.GetTypesDerivedFrom(baseType).Where(p => - p.IsClass && (p.IsPublic || p.IsNestedPublic) && !p.IsAbstract && !p.IsGenericType && diff --git a/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Example/Example.unity b/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Example/Example.unity index 7de6c63..86338ed 100644 --- a/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Example/Example.unity +++ b/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Example/Example.unity @@ -334,6 +334,7 @@ MonoBehaviour: - id: 1 - id: 2 - id: 3 + - id: 4 references: version: 1 00000000: @@ -348,6 +349,8 @@ MonoBehaviour: type: {class: Example/NestedCommand, ns: MackySoft.SerializeReferenceExtensions.Example, asm: Assembly-CSharp} 00000003: type: {class: AddTypeMenuCommand, ns: MackySoft.SerializeReferenceExtensions.Example, asm: Assembly-CSharp} + 00000004: + type: {class: StructCommand, ns: MackySoft.SerializeReferenceExtensions.Example, asm: Assembly-CSharp} --- !u!4 &1098750747 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Example/ExampleAssets/Scripts/Runtime/Example.cs b/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Example/ExampleAssets/Scripts/Runtime/Example.cs index 570c109..301e54d 100644 --- a/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Example/ExampleAssets/Scripts/Runtime/Example.cs +++ b/Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Example/ExampleAssets/Scripts/Runtime/Example.cs @@ -69,5 +69,12 @@ namespace MackySoft.SerializeReferenceExtensions.Example { } } + [Serializable] + public struct StructCommand : ICommand { + public void Execute () { + Debug.Log("Execute StructCommand"); + } + } + } #endif \ No newline at end of file diff --git a/README.md b/README.md index 7c497e4..14a973d 100644 --- a/README.md +++ b/README.md @@ -111,13 +111,19 @@ public class AddTypeMenuCommand : ICommand { Debug.Log("Execute AddTypeMenuCommand"); } } + +[Serializable] +public struct StructCommand : ICommand { + public void Execute () { + Debug.Log("Execute StructCommand"); + } +} ``` #### Supported Types The `SubclassSelector` attribute supports types that meet the following conditions. -- Class - Public - Not abstract - Not generic