标签:
// 要自定义的脚本 public class ABC : Monobehaviour{ public bool a; public float b; public int c; } // 自定义编辑器脚本 [CustomEditor(typeof(ABC)), CanEditorMutipleObjects] // 这意思就是此脚本为ABC脚本的编辑器脚本,CanEditorMutipleObjects 顾名思义,可以同时编辑多个物体 public class ABC_Editor : Editor{ // 这里用简单的显示控制来让大家理解自定义编辑器的流程 public static SerializedProperty a_prop, b_prop, c_prop; void OnEnable(){ // 三个在ABC.cs中定义的属性 a_prop = serializedObject.FindProperty("a"); b_prop = serializedObject.FindProperty("b"); c_prop = serializedObject.FindProperty("c"); } public override void OnInspectorGUI(){ // 更新编辑器显示的序列化属性 serializedObject.Update(); // 没什么说的, 显示属性 EditorGUILayout.PropertyField(a_prop); // 获取a的序列化值 bool display = a_prop.boolValue; if(display){ EditorGUILayout.PropertyField(b_prop); float weight = b_prop.floatValue; if(weight > 0.5f) EditorGUILayout.PropertyField(c_prop); } // 接受序列化赋值 serializedObject.ApplyModifiedProperties(); } } // 至此,一个简单的变量控制相互显示的例子就完成了。 // 试一下吧!
标签:
原文地址:http://www.cnblogs.com/ninja9998877/p/4339044.html