Inspector 的自定义编写
Inspector 的编写遵循着编辑器的编写规范,重新写类的inspector 有助于我们开发的便利性。如我们项目当中经常遇到替换模型的时候应为不太规范的材质丢失问题,物体零件的遍历问题,以及位置的重定位。方便策划和美术以及程序间的对接,加快开发速度。
以下是相当简洁的编辑Inspector的要素。首先需要在编辑类前加上[CustomEditor(typeof(需要编辑的类名字))]声明需要编辑的类。
然后在重写OnInspectorGUI()里添加需要的按钮以及需要展示的属性或者添加一些Editor的控件方便操作。
#if UNITY_EDITOR
[UnityEditor.CustomEditor(typeof(CopyMat))]
public class MatDataEditor : UnityEditor.Editor
{
GameObject go = UnityEditor.Selection.activeGameObject;
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (GUILayout.Button("替换材质"))
{
go.GetComponent<CopyMat>().ExchageMat();
}
}
}
#endif
复制代码
在编写Inspector 常用到两个类:Editor和Selection类,下面有几个常用的函数
1.
EditorGUILayout.PropertyField(serializedObject.FindProperty("IsFristCreatxml"), GUILayout.ExpandWidth(true));
寻找对应的属性然后显示属性;
2.
GameObject go = UnityEditor.Selection.activeGameObject;获取选择的对象,然后在按下按钮的时候触发物体对应的函数
3.
GUILayout.Button("类材质替换", GUILayout.Width(500f) 在Inspector新建一个按钮
注意点:
1.写完的类需要继承Editor类,放置在Editor文件夹下,否则无法编译。
2.注意按钮和控件的宽和高,之前犯了一个错,没有设置导致太宽的时候找不到控件

浙公网安备 33010602011771号