// popravi in pošlje informacijo o spremenjeni mapi vsem tankom public void SendMapInfoToTanks() { // popravi heightArray for (int x = 0; x < mapGrid.GetLength(0); x++) { for (int y = 0; y < mapGrid.GetLength(1); y++) { if (mapGrid[x, y] == 0) { heightArray[x] = y - 1; break; } } } // poiščemo vse tanke GameObject[] tanks = GameObject.FindGameObjectsWithTag("Player"); foreach (GameObject tank in tanks) { TankMoveAndAim tankMoveScript = tank.GetComponent <TankMoveAndAim>(); // pošljemo vsem tankom novo mapo tankMoveScript.mapHightArray = heightArray; // rečemo naj pogleda če se rabi tank kaj premakniti tankMoveScript.SetCoorectionBool(true); if (isNetworkGame) { tankMoveScript.CorrectTankNetworkPosition(); } } // če je network match pošlji info o mapi še drugemu network igralcu if (NetworkInfo.isNetworkMatch) { GameObject[] allNetPlayers = GameObject.FindGameObjectsWithTag("NetworkPlayer"); foreach (GameObject netPlayer in allNetPlayers) { netPlayer.GetComponent <NetworkPlayerManager>().SetMissileDestroyedCount(1); if (isMainMissile) { netPlayer.GetComponent <NetworkPlayerManager>().CheckMap(heightArray); } } } //if (!isNetworkGame || isServer) if (!isNetworkGame)// || isServer) { GameObject.Find("GameManager").GetComponent <PlayerManager>().StopWaitingForNextPlayer(); } /* * else if (isNetworkGame || !isServer) * { * GameObject[] allNetPlayers = GameObject.FindGameObjectsWithTag("NetworkPlayer"); * foreach (GameObject netPlayer in allNetPlayers) * { * netPlayer.GetComponent<NetworkPlayerManager>().StopWaitingForNextPlayerRemote(); * } * } */ // zgenerira edgeCollider za ground GenerateGroundEdgeCollider(); }
public void MapCompatibility(int[] correctHeightArray) { if (heightArray != correctHeightArray && !isMainMissile) { for (int x = 0; x < heightArray.Length; x++) { if (heightArray[x] > correctHeightArray[x]) { for (int y = heightArray[x]; y > correctHeightArray[x]; y--) { mapGrid[x, y] = 0; Vector3Int tilePosition = new Vector3Int(x, y, 0); groundTileMap.SetTile(tilePosition, null); } } else if (heightArray[x] < correctHeightArray[x]) { for (int y = heightArray[x]; y <= correctHeightArray[x]; y++) { mapGrid[x, y] = 5; Vector3Int tilePosition = new Vector3Int(x, y, 0); int arrayIndex = Random.Range(0, 2); groundTileMap.SetTile(tilePosition, grassTiles[arrayIndex]); } } } heightArray = correctHeightArray; // poiščemo vse tanke GameObject[] tanks = GameObject.FindGameObjectsWithTag("Player"); foreach (GameObject tank in tanks) { TankMoveAndAim tankMoveScript = tank.GetComponent <TankMoveAndAim>(); // pošljemo vsem tankom novo mapo tankMoveScript.mapHightArray = heightArray; // rečemo naj pogleda če se rabi tank kaj premakniti tankMoveScript.SetCoorectionBool(true); if (isNetworkGame) { tankMoveScript.CorrectTankNetworkPosition(); } } } // zgenerira edgeCollider za ground GenerateGroundEdgeCollider(); /* * if (isServer) * { * GameObject.Find("GameManager").GetComponent<PlayerManager>().StopWaitingForNextPlayer(); * } * * else */ { GameObject[] allNetPlayers = GameObject.FindGameObjectsWithTag("NetworkPlayer"); foreach (GameObject netPlayer in allNetPlayers) { netPlayer.GetComponent <NetworkPlayerManager>().StopWaitingForNextPlayerRemote(); } } }