Skip to content

Commit ef2d6d6

Browse files
committed
Added static fields into constructors.
1 parent e304534 commit ef2d6d6

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

Assets/Script Tester/Editor/ComponentMethodDrawer.cs

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public void Call() {
114114
try {
115115
thrownException = null;
116116
var requestData = parameters.Select(d => d.Value).ToArray();
117-
if(ctorMode) {
117+
if(selectedCtor != null) {
118118
var returnData = selectedCtor.Invoke(requestData);
119119
result = new MethodPropertyDrawer(selectedCtor.ReflectedType, "Constructed object", returnData, privateFields, obsolete);
120120
} else {
@@ -182,6 +182,17 @@ void AddComponentMethod(Type type) {
182182
ctorInfo = m
183183
})
184184
);
185+
flag &= ~BindingFlags.Instance;
186+
methods.AddRange(
187+
type.GetMethods(flag)
188+
.Where(t => obsolete || !Attribute.IsDefined(t, typeof(ObsoleteAttribute)))
189+
.Where(t => t.ReturnType == type)
190+
.Where(t => string.IsNullOrEmpty(filter) || t.Name.IndexOf(filter, StringComparison.CurrentCultureIgnoreCase) >= 0)
191+
.Select(m => new ComponentMethod {
192+
method = m,
193+
target = null
194+
})
195+
);
185196
}
186197

187198
void AddComponentMethod(object target) {
@@ -206,10 +217,16 @@ void InitComponentMethods(bool resetIndex = true) {
206217
else
207218
AddComponentMethod(component);
208219
if(ctorMode)
209-
methodNames = methods.Select(m => string.Format(
210-
"Constructor ({0} parameters)",
211-
m.ctorInfo.GetParameters().Length
212-
)).ToArray();
220+
methodNames = methods.Select(m => m.ctorInfo != null ?
221+
string.Format(
222+
"[Constructor] ({0} parameters)",
223+
m.ctorInfo.GetParameters().Length
224+
) : string.Format(
225+
"{0} ({1} parameters)",
226+
Helper.GetMemberName(m.method as MemberInfo),
227+
m.method.GetParameters().Length
228+
)
229+
).ToArray();
213230
else if(drawHeader) {
214231
var gameObject = component as GameObject;
215232
if(gameObject != null)
@@ -244,8 +261,9 @@ void InitComponentMethods(bool resetIndex = true) {
244261
}
245262

246263
void InitMethodParams() {
247-
if(ctorMode) {
248-
selectedCtor = methods[selectedMethodIndex].ctorInfo;
264+
selectedCtor = methods[selectedMethodIndex].ctorInfo;
265+
if(selectedCtor != null) {
266+
selectedMethod = null;
249267
component = null;
250268
parameterInfo = selectedCtor.GetParameters();
251269
} else {
@@ -279,11 +297,11 @@ void DrawComponent() {
279297
}
280298

281299
void DrawMethod() {
282-
if(paramsFolded = EditorGUILayout.Foldout(paramsFolded, ctorMode ? "Constructor" : selectedMethod.Name)) {
300+
if(paramsFolded = EditorGUILayout.Foldout(paramsFolded, selectedCtor != null ? "Constructor" : selectedMethod.Name)) {
283301
GUI.changed = false;
284302
EditorGUI.indentLevel++;
285303
EditorGUILayout.BeginVertical();
286-
if(ctorMode ? selectedCtor.ContainsGenericParameters : selectedMethod.ContainsGenericParameters)
304+
if(selectedCtor != null ? selectedCtor.ContainsGenericParameters : selectedMethod.ContainsGenericParameters)
287305
EditorGUILayout.HelpBox("Generic method is not supported.", MessageType.Warning);
288306
else {
289307
if(parameterInfo.Length == 0)

0 commit comments

Comments
 (0)