private void TabComponent_PointerEntered(object sender, PointerRoutedEventArgs e) { if (!string.IsNullOrEmpty(current_tab.PathContent)) { ShowPath.Begin(); } }
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); } }
// 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; }
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(); }
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(); }
// 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)); }
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)); }