using UnityEditor; using UnityEngine; using XGame.Framework.Map; namespace XGame.Editor.Map { [CustomEditor(typeof(MapBehaviour))] public class MapBehaviourInspector : UnityEditor.Editor { //private SerializedProperty m_Script; private MapBehaviour _behaviour; private string _componentName; private void OnEnable() { //m_Script = serializedObject.FindProperty("m_Script"); _behaviour = serializedObject.targetObject as MapBehaviour; } private void OnDisable() { _behaviour = null; //m_Script = null; } public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); //展示区域,禁止操作 //EditorGUI.BeginDisabledGroup(true); //EditorGUILayout.PropertyField(m_Script); //EditorGUI.EndDisabledGroup(); // 运行时不显示代码生成相关 if (Application.isPlaying) return; GUILayout.Space(20); EditorGUILayout.BeginVertical("Box"); DrawCodeTitle(); DrawGenerateBtn(); EditorGUILayout.EndVertical(); } private void DrawCodeTitle() { var titleStyle = new GUIStyle("Label") { fontSize = 25, alignment = TextAnchor.MiddleCenter, fontStyle = FontStyle.BoldAndItalic }; GUILayout.Box("以下为代码生成区域", titleStyle); GUILayout.Space(10); _componentName = EditorGUILayout.TextField("请输入Component名字:", _componentName); GUILayout.Space(10); } private void DrawGenerateBtn() { GUILayout.FlexibleSpace(); GUILayout.BeginVertical(); GUIStyle style = new GUIStyle("Button") { alignment = TextAnchor.MiddleCenter, fontStyle = FontStyle.BoldAndItalic, fontSize = 15, }; GUI.color = Color.green; if (GUILayout.Button("Generator", style, GUILayout.Height(40))) { (new MapViewCodeGen()).Gen(_behaviour, _componentName); } GUI.color = Color.white; GUILayout.EndVertical(); } } }