Esempio n. 1
0
    public void StartEverything()
    {
        Time.timeScale = 1f; //make sure this is 1!
        if (!traversing)
        {
            Stack <Vector3> path = BreadthFirstSearch(startPosition, endPosition, voxelChunk);

            if (path.Count > 0)
            {
                StartCoroutine(LerpAlongPath(path));
            }
        }

        Vector3 s, e;

        if (XMLVoxelFileWriter.ReadStartAndEndPosition(out s, out e, "AssessmentChunk1"))
        {
            startPosition = s;
            print("Start = " + startPosition);
            endPosition = e;
            print("End = " + endPosition);
        }

        Stack <Vector3> path2 = Djikstras(startPosition, endPosition, voxelChunk);

        if (path2.Count > 0)
        {
            StartCoroutine(LerpAlongPath(path2));
        }
    }
Esempio n. 2
0
    void Update()
    {
        if (!traversing)
        {
            if (Input.GetKeyDown(KeyCode.O))
            {
                Stack <Vector3> path = BreadthFirstSearch(startPosition, endPosition, voxelChunk);

                if (path.Count > 0)
                {
                    StartCoroutine(LerpAlongPath(path));
                }
            }


            if (Input.GetKeyDown(KeyCode.L))
            {
                Stack <Vector3> path = Djikstras(startPosition, endPosition, voxelChunk);

                if (path.Count > 0)
                {
                    StartCoroutine(LerpAlongPath(path));
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.P))
        {
            Vector3 s, e;
            if (XMLVoxelFileWriter.ReadStartAndEndPosition(out s, out e, "AssessmentChunk1"))
            {
                startPosition = s;
                print("Start = " + startPosition);
                endPosition = e;
                print("End = " + endPosition);
            }
        }
    }
    //buttons that allow user to changing the map, start and end position or start the pathfinding*********************************************************************
    void OnGUI()
    {
        if (GUI.Button(new Rect(50, 50, 150, 50), "AssessmentChunk1"))
        {
            XMLVoxelFileWriter.ReadStartAndEndPosition(out startPosition, out endPosition, "AssessmentChunk1");
            //get terrainArray from xml
            voxelChunk.terrainArray = XMLVoxelFileWriter.LoadChunkFromXMLFile(16, "AssessmentChunk1");
            //draw the correct faces
            voxelChunk.CreateTerrain();
            //Update mesh info
            voxelGenerator.UpdateMesh();
        }

        if (GUI.Button(new Rect(50, 120, 150, 50), "AssessmentChunk2"))
        {
            XMLVoxelFileWriter.ReadStartAndEndPosition(out startPosition, out endPosition, "AssessmentChunk2");
            //get terrainArray from xml
            voxelChunk.terrainArray = XMLVoxelFileWriter.LoadChunkFromXMLFile(16, "AssessmentChunk2");
            //draw the correct faces
            voxelChunk.CreateTerrain();
            //Update mesh info
            voxelGenerator.UpdateMesh();
        }

        if (!traversing)
        {
            if (GUI.Button(new Rect(50, 190, 150, 50), "Start"))
            {
                Stack <Vector3> path = Dijkstra(startPosition, endPosition, voxelChunk);
                if (path.Count > 0)
                {
                    //Debug.Log (path.Count);
                    StartCoroutine(LerpAlongPath(path));
                }
            }
        }
    }
 // Use this for initialization
 void Start()
 {
     //load the second assessment start and end position by default****************************************************************************************************
     XMLVoxelFileWriter.ReadStartAndEndPosition(out startPosition, out endPosition, "AssessmentChunk2");
 }