该脚本只在编辑器中使用,用来更好的控制脚本(修改指定脚本GUI面板,更好的控制目标脚本等等等等等),主要表现在Unity的脚本面板中,继承Editor的脚本放在哪(Assets/Editor/TileEditor.cs) [CustomEditor(typeof(TileObject))]和tileObject = (TileObject)target的使用 a.[CustomEditor(typeof(TileObject))]放在Editor脚本类前方用来指定某脚本,这里是TileObject脚本,private void OnEnable(){tileObject = (TileObject)target}用来初始化。 2. public override void OnInspectorGUI(){}下方常用功能都定义在此。 a.GUILayout.Label("Tile Editor");在指定脚本面板下定义一个Tile Editor标签(如图) b.editMode = EditorGUILayout.Toggle("Edit",editMode);Toggle两种状态切换false true; c. tileObject.debug = EditorGUILayout.Toggle("Debug",tileObject.debug);相同 d.string[] editDataStr = { "Dead", "Road", "Guard" }; tileObject.dataID = GUILayout.Toolbar(tileObject.dataID,editDataStr);如图所示 e.EditorGUILayout.Separator();画个分割线,用于美观 if (GUILayout.Button("Reset")) { tileObject.Reset(); }Reset按钮不用多说了吧,你懂的 f.DrawDefaultInspector();将target脚本其他属性在unity中展现出来,而不是使用了OnInspectorGUI就必须重新绘制脚本面板上所有内容,很重要滴这个