示例#1
0
 private void TabComponent_PointerEntered(object sender, PointerRoutedEventArgs e)
 {
     if (!string.IsNullOrEmpty(current_tab.PathContent))
     {
         ShowPath.Begin();
     }
 }
示例#2
0
 private void TabComponent_PointerEntered(object sender, PointerRoutedEventArgs e)
 {
     if (!string.IsNullOrEmpty(current_tab.TabOriginalPathContent) && current_tab.TabContentType == ContentType.File)
     {
         ShowPath.Begin();
     }
 }
 public void AddInterfaces(List <GameObject> RoadsOrTriangles)
 {
     for (int i = 0; i < RoadsOrTriangles.Count; i++)
     {
         ShowPath tempInterface = RoadsOrTriangles[i].GetComponent <ShowPath>();
         InterfacesOfPaths.Add(tempInterface);
     }
 }
示例#4
0
    // Use this for initialization
    void Start()
    {
        _player   = GameObject.Find("Player").GetComponent <Player>();
        _trap     = GetComponent <TrapManager>();
        _pathInfo = GetComponent <ShowPath>();

        GameTimer  = (int)(_pathInfo.GetCorrectTilesCount() * 3.5f);
        GameTimer -= 0.01f;
    }
示例#5
0
    void Start()
    {
        pathShower              = GetComponent <ShowPath> ();
        agent                   = GetComponent <NavMeshAgent> ();
        agent.enabled           = false;
        startDestination        = destMgr.nextDestination();
        this.transform.position = startDestination.transform.position;
        currentDestination      = destMgr.nextDestination();
        hasInitiated            = false;
        agentPriority           = 0;

        waypoints = new List <Waypoint> ();
    }
        private IEnumerator ClickOnItemForPathing()
        {
            yield return(null);

            if (Input.GetButtonDown("Fire1") && !IsPathLaid)
            {
                ray = MainCamera.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit, Mathf.Infinity))
                {
                    ShowPath onclicked = hit.collider.gameObject.GetComponent <ShowPath>();
                    if (onclicked != null)
                    {
                        if (Beginning != null)
                        {
                            Beginning.TurnBackToOriginalColor();
                        }
                        Beginning = onclicked;
                        BeginPath = onclicked.BeginAndEndPath();
                    }
                }
            }
            yield return(null);

            if (Input.GetButtonDown("Fire2") && !IsPathLaid)
            {
                ray = MainCamera.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit, Mathf.Infinity))
                {
                    ShowPath onclicked = hit.collider.gameObject.GetComponent <ShowPath>();
                    if (onclicked != null)
                    {
                        if (Ending != null)
                        {
                            Ending.TurnBackToOriginalColor();
                        }
                        Ending  = onclicked;
                        EndPath = onclicked.BeginAndEndPath();
                    }
                }
            }
            yield return(null);

            if (BeginPath > -1 && EndPath > -1 && !IsPathLaid)
            {
                IsPathLaid = !IsPathLaid;
                GetComponent <AStarCalculator>().AStarCalc(BeginPath, EndPath);
                BeginPath = -1;
                EndPath   = -1;
                StartCoroutine(PathLaidDelay());
            }
        }
    // Use this for initialization
    void Start()
    {
        _pathManager       = GameObject.Find("boardGameManager").GetComponent <ShowPath>();
        _canvas            = gameObject.GetComponent <Canvas>();
        _canvas.renderMode = RenderMode.ScreenSpaceCamera;
        _listCount         = _pathManager.GetCorrectTilesCount();
        _totalAnimTime     = _listCount * _pathManager.GetDisplayAnimTime();

        LoadingText.text    = "initialising ...";
        ProgressText.text   = "";
        PercentageText.text = "0.00";

        _blackTex = new Texture2D(1, 1);
        _blackTex.SetPixel(0, 0, new Color(0, 0, 0, 0));
        _blackTex.Apply();
    }
示例#8
0
文件: Player.cs 项目: Linkaan/LD40
    void Start()
    {
        pathShower              = GetComponent <ShowPath> ();
        agent                   = GetComponent <NavMeshAgent> ();
        agent.enabled           = false;
        startDestination        = destMgr.nextDestination();
        this.transform.position = startDestination.transform.position;
        currentDestination      = destMgr.nextDestination();
        hasInitialized          = false;
        agentPriority           = 0;

        startTime = Time.time;

        //agent.updatePosition = false;
        agent.updateRotation   = false;
        agent.stoppingDistance = 2f;

        waypoints = new List <Waypoint> ();
    }
    // Use this for initialization
    void Awake()
    {
        WidthPlayfield  = LevelSettings.GetLevelWidth();
        HeightPlayfield = LevelSettings.GetLevelHeight();
        _pathHelp       = gameObject.GetComponent <ShowPath>();

        // Fehlerfall abdecken, falls Groesse und Hoehe des Spielfelds kleiner als 1
        if (WidthPlayfield < 1)
        {
            WidthPlayfield = 1;
        }
        if (HeightPlayfield < 1)
        {
            HeightPlayfield = 1;
        }

        TilesField = new bool[HeightPlayfield, WidthPlayfield];

        int posX = (int)Random.Range(0, WidthPlayfield); // Startwert auf der X-Achse wird gewuerfelt
        int posY = 0;                                    // zaehlt die "Zeilen" des Arrays tilesField hoch, Start bei 0

        TilesField[posY, posX] = IS_CORRECT_TILE;        // Startwert als ersten Wert in das Spielfeld eintragen
        _pathHelp.AddToPathList(posX, posY);

        int pathDirection = 0;                            // speichert die moeglichen Richtungen des Pfades, initial = 0 (vorwaerts)
        int pathLength;                                   // speichert die Laenge des Pfads in die gewuerfelte Richtung
        int pathEnd;                                      // Abbruchbedingung for-Schleife, ansonsten wird currentPosition in der Bedingung ueberschrieben
        int maxForwardLength = (HeightPlayfield / 5 + 2); // Laenge des Pfads kann sich je nach Einstellung aendern. DEFAULT: (height - currentPosY)

        TileOffset = Mathf.Abs(TileOffset);
        TileWidth  = TilePrefab.transform.localScale.x + TileOffset; // speichert die Breite des Tile Prefabs
        TileHeight = TilePrefab.transform.localScale.z + TileOffset; // speichert die Laenge des Tile Prefabs
        bool isRight = false, isLeft = false;                        // geben die Richtung des letzten Schritts an

        int heightCounter = 1;                                       // verhindert einen aufeinanderfolgenden links-rechts-Schritt, = 1, da Startwert als ein Schritt gilt, ansonsten = 2

        // legt den richtigen Laufpfad fest
        while (posY < (HeightPlayfield - 1))
        {
            // welche Richtung wurde gewaehlt, Startwert ist immer vorwaerts
            switch (pathDirection)
            {
            // PFADRICHTUNG VORWAERTS
            case 0:
                pathLength     = (int)Random.Range(1, maxForwardLength);
                heightCounter -= pathLength;                // Hoehenunterschied durch Schritt berechnen

                pathEnd = posY + pathLength;
                for (int indxY = (posY + 1); indxY <= pathEnd && posY < (HeightPlayfield - 1); indxY++)
                {
                    TilesField[indxY, posX] = IS_CORRECT_TILE;
                    _pathHelp.AddToPathList(posX, indxY);
                    posY = indxY;
                }

                // naechste Pfadrichtung waehlen
                //
                // Fall abdecken, falls Breite doch mal 1 entsprechen sollte
                if (WidthPlayfield == 1)
                {
                    pathDirection = 0;
                    break;
                }

                // Normalfaelle - Hoehenunterschied von
                if (heightCounter <= 0)
                {
                    if (posX == 0)                          // Position ganz links --> naechste Wegrichtung ist rechts
                    {
                        pathDirection = 1;
                    }
                    else if (posX == (WidthPlayfield - 1))         // Position ganz rechts --> neachste Wegrichtung ist links
                    {
                        pathDirection = -1;
                    }
                    else                                    // ansonsten wuerfel aus, ob links oder rechts
                    {
                        pathDirection = (Random.Range(0f, 1f) < 0.5f) ? pathDirection = -1 : pathDirection = 1;
                    }
                    isLeft  = false;
                    isRight = false;
                }
                else
                {
                    if (isLeft && posX != 0)
                    {
                        pathDirection = Random.Range(-1, 1);
                    }
                    else if (heightCounter > 0 && isRight && posX != (WidthPlayfield - 1))
                    {
                        pathDirection = Random.Range(0, 2);
                    }
                    // ansonsten bleibt pathDirection unveraendert, muss nicht abgefragt werden
                }
                break;

            // PFADRICHTUNG LINKS ODER RECHTS
            default:
                // PFADRICHTUNG LINKS
                if (pathDirection < 0)
                {
                    pathLength = (int)Random.Range(1, (posX + 1));

                    pathEnd = posX - pathLength;
                    for (int indxX = (posX - 1); indxX >= pathEnd; indxX--)
                    {
                        TilesField[posY, indxX] = IS_CORRECT_TILE;
                        _pathHelp.AddToPathList(indxX, posY);
                        posX = indxX;
                    }
                    // naechste Pfadrichtung angeben
                    isLeft = true;
                }
                // PFADRICHTUNG RECHTS
                else if (pathDirection > 0)
                {
                    pathLength = (int)Random.Range(1, (WidthPlayfield - posX));

                    pathEnd = posX + pathLength;
                    for (int indxX = (posX + 1); indxX <= pathEnd; indxX++)
                    {
                        TilesField[posY, indxX] = IS_CORRECT_TILE;
                        _pathHelp.AddToPathList(indxX, posY);
                        posX = indxX;
                    }
                    isRight = true;
                }
                // naechste Pfadrichtung ist vorwaerts
                pathDirection = 0;
                heightCounter = 2;
                break;
            }
        } // ENDE WHILE

        // Generierung des Spielfelds
        CreateBoard();
    }
示例#10
0
    // Start is called before the first frame update
    void Start()
    {
        path = new NavMeshPath();
        GameObject cube1     = GameObject.Find("Cube (1)");
        GameObject cube2     = GameObject.Find("Cube (2)");
        GameObject cube3     = GameObject.Find("Cube (3)");
        GameObject cube4     = GameObject.Find("Cube (4)");
        GameObject cube5     = GameObject.Find("Cube (5)");
        GameObject target1   = GameObject.Find("Target");
        GameObject target2   = GameObject.Find("Target (1)");
        GameObject target3   = GameObject.Find("Target (2)");
        GameObject target4   = GameObject.Find("Target (3)");
        GameObject target5   = GameObject.Find("Target (4)");
        ShowPath   showpath1 = cube1.GetComponent <ShowPath>();
        ShowPath   showpath2 = cube2.GetComponent <ShowPath>();
        ShowPath   showpath3 = cube3.GetComponent <ShowPath>();
        ShowPath   showpath4 = cube4.GetComponent <ShowPath>();

        NavMesh.CalculatePath(cube1.transform.position, target1.transform.position, NavMesh.AllAreas, path);
        float distance = 0;

        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1.Add(distance);
        NavMesh.CalculatePath(cube1.transform.position, target2.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1.Add(distance);
        NavMesh.CalculatePath(cube1.transform.position, target3.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1.Add(distance);
        NavMesh.CalculatePath(cube1.transform.position, target4.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1.Add(distance);
        NavMesh.CalculatePath(cube1.transform.position, target5.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1.Add(distance);
        NavMesh.CalculatePath(cube2.transform.position, target1.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2.Add(distance);
        NavMesh.CalculatePath(cube2.transform.position, target2.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2.Add(distance);
        NavMesh.CalculatePath(cube2.transform.position, target3.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2.Add(distance);
        NavMesh.CalculatePath(cube2.transform.position, target4.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2.Add(distance);
        NavMesh.CalculatePath(cube2.transform.position, target5.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2.Add(distance);
        NavMesh.CalculatePath(cube3.transform.position, target1.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3.Add(distance);
        NavMesh.CalculatePath(cube3.transform.position, target2.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3.Add(distance);
        NavMesh.CalculatePath(cube3.transform.position, target3.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3.Add(distance);
        NavMesh.CalculatePath(cube3.transform.position, target4.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3.Add(distance);
        NavMesh.CalculatePath(cube3.transform.position, target5.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3.Add(distance);
        NavMesh.CalculatePath(cube4.transform.position, target1.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4.Add(distance);
        NavMesh.CalculatePath(cube4.transform.position, target2.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4.Add(distance);
        NavMesh.CalculatePath(cube4.transform.position, target3.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4.Add(distance);
        NavMesh.CalculatePath(cube4.transform.position, target4.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4.Add(distance);
        NavMesh.CalculatePath(cube4.transform.position, target5.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4.Add(distance);
        evacuationTime5.Add(Vector3.Distance(target1.transform.position, cube5.transform.position));
        evacuationTime5.Add(Vector3.Distance(target2.transform.position, cube5.transform.position));
        evacuationTime5.Add(Vector3.Distance(target3.transform.position, cube5.transform.position));
        evacuationTime5.Add(Vector3.Distance(target4.transform.position, cube5.transform.position));
        evacuationTime5.Add(Vector3.Distance(target5.transform.position, cube5.transform.position));
    }
示例#11
0
    void updateVariables()
    {
        GameObject cube1     = GameObject.Find("Cube (1)");
        GameObject cube2     = GameObject.Find("Cube (2)");
        GameObject cube3     = GameObject.Find("Cube (3)");
        GameObject cube4     = GameObject.Find("Cube (4)");
        GameObject cube5     = GameObject.Find("Cube (5)");
        GameObject target1   = GameObject.Find("Target");
        GameObject target2   = GameObject.Find("Target (1)");
        GameObject target3   = GameObject.Find("Target (2)");
        GameObject target4   = GameObject.Find("Target (3)");
        GameObject target5   = GameObject.Find("Target (4)");
        ShowPath   showpath1 = cube1.GetComponent <ShowPath>();
        ShowPath   showpath2 = cube2.GetComponent <ShowPath>();
        ShowPath   showpath3 = cube3.GetComponent <ShowPath>();
        ShowPath   showpath4 = cube4.GetComponent <ShowPath>();


        NavMesh.CalculatePath(cube1.transform.position, target1.transform.position, NavMesh.AllAreas, path);
        float distance = 0;

        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1[0] = (distance);
        NavMesh.CalculatePath(cube1.transform.position, target2.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1[1] = (distance);
        NavMesh.CalculatePath(cube1.transform.position, target3.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1[2] = (distance);
        NavMesh.CalculatePath(cube1.transform.position, target4.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1[3] = (distance);
        NavMesh.CalculatePath(cube1.transform.position, target5.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime1[4] = (distance);
        NavMesh.CalculatePath(cube2.transform.position, target1.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2[0] = (distance);
        NavMesh.CalculatePath(cube2.transform.position, target2.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2[1] = (distance);
        NavMesh.CalculatePath(cube2.transform.position, target3.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2[2] = (distance);
        NavMesh.CalculatePath(cube2.transform.position, target4.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2[3] = (distance);
        NavMesh.CalculatePath(cube2.transform.position, target5.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime2[4] = (distance);
        NavMesh.CalculatePath(cube3.transform.position, target1.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3[0] = (distance);
        NavMesh.CalculatePath(cube3.transform.position, target2.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3[1] = (distance);
        NavMesh.CalculatePath(cube3.transform.position, target3.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3[2] = (distance);
        NavMesh.CalculatePath(cube3.transform.position, target4.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3[3] = (distance);
        NavMesh.CalculatePath(cube3.transform.position, target5.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime3[4] = (distance);
        NavMesh.CalculatePath(cube4.transform.position, target1.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4[0] = (distance);
        NavMesh.CalculatePath(cube4.transform.position, target2.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4[1] = (distance);
        NavMesh.CalculatePath(cube4.transform.position, target3.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4[2] = (distance);
        NavMesh.CalculatePath(cube4.transform.position, target4.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4[3] = (distance);
        NavMesh.CalculatePath(cube4.transform.position, target5.transform.position, NavMesh.AllAreas, path);
        distance = 0;
        for (int i = 0; i < path.corners.Length - 1; i++)
        {
            distance += Vector3.Distance(path.corners[i], path.corners[i + 1]);
        }
        evacuationTime4[4] = (distance);
        evacuationTime5[0] = (Vector3.Distance(target1.transform.position, cube5.transform.position));
        evacuationTime5[1] = (Vector3.Distance(target2.transform.position, cube5.transform.position));
        evacuationTime5[2] = (Vector3.Distance(target3.transform.position, cube5.transform.position));
        evacuationTime5[3] = (Vector3.Distance(target4.transform.position, cube5.transform.position));
        evacuationTime5[4] = (Vector3.Distance(target5.transform.position, cube5.transform.position));
    }