public override void OnInspectorGUI() { base.OnInspectorGUI(); EditorGUILayout.Space(); MapBlock curr = mapBlockVisualizer.GetMapBlock(); if (curr != null) { EditorGUILayout.LabelField(string.Format("当前网格 {0}", curr.name)); EditorGUILayout.LabelField(string.Format("当前网格宽度 {0}", curr.Width)); EditorGUILayout.LabelField(string.Format("当前网格高度 {0}", curr.Height)); } EditorGUILayout.Space(); GUILayout.BeginVertical("Box"); width_ = EditorGUILayout.IntField("网格宽度", width_); height_ = EditorGUILayout.IntField("网格高度", height_); if (GUILayout.Button("创建网格")) { if (width_ < 16) { width_ = 16; } if (height_ < 16) { height_ = 16; } MapBlock mb = new MapBlock(); mb.Init(width_, height_); mapBlockVisualizer.Reload(mb); } EditorGUILayout.Space(); if (GUILayout.Button("加载数据")) { string initdir = PlayerPrefs.GetString("mbpath", Application.dataPath); string path = EditorUtility.OpenFilePanel("加载数据", initdir, "bytes"); if (path != string.Empty) { if (File.Exists(path)) { FileStream fs = File.OpenRead(path); BinaryReader reader = new BinaryReader(fs); MapBlock mb = new MapBlock(); if (mb.Load(reader)) { mb.name = path; mapBlockVisualizer.Reload(mb); } reader.Close(); fs.Close(); } } } EditorGUILayout.Space(); if (GUILayout.Button("保存文件")) { MapBlock mb = mapBlockVisualizer.GetMapBlock(); if (mb != null) { string path = mb.name; if (path == string.Empty) { string initdir = PlayerPrefs.GetString("mbpath", Application.dataPath); path = EditorUtility.SaveFilePanel("保存文件", initdir, "a.bytes", "bytes"); } if (path != string.Empty) { var fs = File.OpenWrite(path); var bw = new BinaryWriter(fs); mb.Save(bw); bw.Close(); fs.Close(); mb.name = path; Debug.LogWarningFormat("保存成功 {0}", path); } } } GUILayout.EndVertical(); }