level 9
hjs19871126
楼主
自定义编辑器中我override了Skill脚本的OnInspectorGUI.
图一未修改前的显示.
同时我不想用base.OnInspectorGUI(),因为里面有很多的我不需要的成员变量.
大家通过第二章图片看到了我能自由选择技能类型.根据我选择的技能类型不同显示不同的成员变量.问题就随之而来了.我现在若要在Skill类中添加成员变量,还要在编辑器中添加修改.
有没有什么办法能让我编辑器自动获取类中的所有成员变量.然后自动过滤掉一些无用的?

(一)

(二)
当我用
System.Reflection.MemberInfo[] members = type.GetMembers((BindingFlags)(-1));
获取到MemberInfo的时候会获取到我的方法,我的托管,我的成员变量,还有一个C方法(类型为:System.Reflection.MonoCMethod).其实我只想获取到我自定义的成员变量就可以了...问题就在这里.
还有一个很关键的问题.我给绑定了这个脚本的物体赋值的问题.现在我只能用一个很笨的方法.就是用"target.成员名 = (成员类型)EditorGUILayout.ObjectField(....);",问题是还要强转.
就是这个强转难住了我,因为如果我要自动获取Skill中的成员.
哪位大婶给点建议或者思路?
2013年05月21日 05点05分
1
图一未修改前的显示.
同时我不想用base.OnInspectorGUI(),因为里面有很多的我不需要的成员变量.
大家通过第二章图片看到了我能自由选择技能类型.根据我选择的技能类型不同显示不同的成员变量.问题就随之而来了.我现在若要在Skill类中添加成员变量,还要在编辑器中添加修改.
有没有什么办法能让我编辑器自动获取类中的所有成员变量.然后自动过滤掉一些无用的?

(一)
(二)当我用
System.Reflection.MemberInfo[] members = type.GetMembers((BindingFlags)(-1));
获取到MemberInfo的时候会获取到我的方法,我的托管,我的成员变量,还有一个C方法(类型为:System.Reflection.MonoCMethod).其实我只想获取到我自定义的成员变量就可以了...问题就在这里.
还有一个很关键的问题.我给绑定了这个脚本的物体赋值的问题.现在我只能用一个很笨的方法.就是用"target.成员名 = (成员类型)EditorGUILayout.ObjectField(....);",问题是还要强转.
就是这个强转难住了我,因为如果我要自动获取Skill中的成员.
哪位大婶给点建议或者思路?