public override void OnInspectorGUI()
        {
            EditorGUILayout.BeginVertical(GUI.skin.box);
            base.OnInspectorGUI();
            EditorGUILayout.EndVertical();

            SimpleAStar aStar = target as SimpleAStar;

            bool haveData = aStar.MapData != null;

            EditorGUILayout.LabelField("数据:" + (haveData ? "<color=green>存在!</color>" : "<color=red>不存在!</color>"), _labelStyle);
            if (haveData)
            {
                int x = aStar.MapData.GetLength(0);
                int y = aStar.MapData.GetLength(1);
                EditorGUILayout.LabelField("[" + x + " x " + y + "] 节点总数:" + (x * y) + "个");
            }

            if (GUILayout.Button("Scan", GUILayout.Height(30), GUILayout.Width(50)))
            {
                aStar.Scan();
                aStar.SaveMapData();
                UnityEditor.SceneManagement.EditorSceneManager.MarkAllScenesDirty();
            }

            if (GUILayout.Button("Clear", GUILayout.Height(30), GUILayout.Width(50)))
            {
                aStar.ClearData();
                UnityEditor.SceneManagement.EditorSceneManager.MarkAllScenesDirty();
            }
        }
        private static Node GetNode(Vector3 pos, SimpleAStar aStar)
        {
            Vector3 originPos = aStar.MapOriginPosition;
            int     x         = (int)((pos.x - originPos.x) / aStar.GridSize);
            int     y         = (int)((pos.z - originPos.z) / aStar.GridSize);

            //返回计算出的点
            return(aStar.MapData[x, y]);
        }
        private void OnEnable()
        {
            SimpleAStar aStar = target as SimpleAStar;

            if (aStar.MapData == null)
            {
                aStar.LoadMapData();
            }

            _labelStyle = new GUIStyle();
            _labelStyle.normal.textColor = Color.white;
            _labelStyle.richText         = true;
        }
        public void Register(SimpleAStar aStar)
        {
            _aStar = aStar;

            _gridSize = _aStar.GridSize;
        }