@@ -11,8 +11,9 @@ namespace UnityExplorer.CacheObject
1111 public class CacheConstructor : CacheMember
1212 {
1313 public ConstructorInfo CtorInfo { get ; }
14+ readonly Type typeForStructConstructor ;
1415
15- public override Type DeclaringType => CtorInfo . DeclaringType ;
16+ public override Type DeclaringType => typeForStructConstructor ?? CtorInfo . DeclaringType ;
1617 public override bool IsStatic => true ;
1718 public override bool ShouldAutoEvaluate => false ;
1819 public override bool CanWrite => false ;
@@ -22,8 +23,27 @@ public CacheConstructor(ConstructorInfo ci)
2223 this . CtorInfo = ci ;
2324 }
2425
26+ public CacheConstructor ( Type typeForStructConstructor )
27+ {
28+ this . typeForStructConstructor = typeForStructConstructor ;
29+ }
30+
2531 public override void SetInspectorOwner ( ReflectionInspector inspector , MemberInfo member )
2632 {
33+ // if is parameterless struct ctor
34+ if ( typeForStructConstructor != null )
35+ {
36+ this . Owner = inspector ;
37+
38+ // eg. Vector3.Vector3()
39+ this . NameLabelText = SignatureHighlighter . Parse ( typeForStructConstructor , false ) ;
40+ NameLabelText += $ ".{ NameLabelText } ()";
41+
42+ this . NameForFiltering = SignatureHighlighter . RemoveHighlighting ( NameLabelText ) ;
43+ this . NameLabelTextRaw = NameForFiltering ;
44+ return ;
45+ }
46+
2747 base . SetInspectorOwner ( inspector , member ) ;
2848
2949 Arguments = CtorInfo . GetParameters ( ) ;
0 commit comments