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; }