Beispiel #1
0
 private void Clear(RoadGraphDatabase roadGraphDB)
 {
     roadGraphDB.Clear();
     fromNode = null;
     toNode   = null;
     EditorUtility.SetDirty(roadGraphDB);
 }
Beispiel #2
0
        //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();
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 private void AddConnection(RoadGraphDatabase roadGraphDB)
 {
     roadGraphDB.AddConnection(fromNode, toNode, cost, directed);
     EditorUtility.SetDirty(roadGraphDB);
 }