private void Clear(RoadGraphDatabase roadGraphDB) { roadGraphDB.Clear(); fromNode = null; toNode = null; EditorUtility.SetDirty(roadGraphDB); }
//private int fromID = 0; //private int toID = 1; //private bool autoGenIDs = true; //private Graph<RoadNode> roadGraph; public override void OnInspectorGUI() { DrawDefaultInspector(); RoadGraphDatabase roadGraphDB = target as RoadGraphDatabase; Assert.IsNotNull(roadGraphDB); if (roadGraphDB == null) { return; } //roadGraph = roadGraphDB.RoadGraph; //roadGraphDB.ad //if (roadGraph == null) return; //Add to graph EditorGUILayout.BeginVertical(); { EditorGUILayout.LabelField("Add connection to road graph"); //From Node fromNode = (RoadNode)EditorGUILayout.ObjectField("FromNode", fromNode, typeof(RoadNode), true); //fromID = EditorGUILayout.IntField("ID", fromID); //To Node toNode = (RoadNode)EditorGUILayout.ObjectField("ToNode", toNode, typeof(RoadNode), true); //toID = EditorGUILayout.IntField("ID", toID); //autoGenIDs = EditorGUILayout.Toggle("Auto Generate IDs", autoGenIDs); cost = EditorGUILayout.FloatField("Cost", cost); directed = EditorGUILayout.Toggle("Directed", directed); //Buttons if (GUILayout.Button("Add Connection")) { AddConnection(roadGraphDB); } if (GUILayout.Button("Clear")) { Clear(roadGraphDB); } if (GUILayout.Button("Create New Road Node")) { CreateNewRoadNode(roadGraphDB); } if (GUILayout.Button("Display")) { Display(); } } EditorGUILayout.EndVertical(); }
private void CreateNewRoadNode(RoadGraphDatabase roadGraphDB) { Assert.IsNotNull(roadGraphDB); var newRoadNode = (RoadNode)(Instantiate(roadGraphDB.RoadNodePrefab)); Assert.IsNotNull(newRoadNode); newRoadNode.transform.SetParent(roadGraphDB.transform, true); RoadNode[] roadNodes = FindObjectsOfType <RoadNode>(); Assert.IsNotNull(roadNodes); Assert.IsTrue(roadNodes.Length > 0); int ID = 0; while (roadNodes.Any(roadNode => roadNode.ID == ID)) { ++ID; } newRoadNode.ID = ID; newRoadNode.name = "RoadNode " + ID; Selection.activeGameObject = newRoadNode.gameObject; EditorGUIUtility.PingObject(Selection.activeGameObject); }
private void AddConnection(RoadGraphDatabase roadGraphDB) { roadGraphDB.AddConnection(fromNode, toNode, cost, directed); EditorUtility.SetDirty(roadGraphDB); }