private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.layer != LayerMask.NameToLayer("Player")) { return; } GameObject[,] minimapRealization = DungeonMinimapBuilder.GetMapRealization(); int x = (int)roomBuilder.Position.x, y = (int)roomBuilder.Position.y; DungeonMinimapRoomBuilder minimapRoomBuilder = minimapRealization[x, y].gameObject.GetComponent <DungeonMinimapRoomBuilder>(); minimapRoomBuilder.IsVisited = true; minimapRoomBuilder.IsCurrentlyVisited = true; for (int i = 0, neighbours = 4; i < neighbours; i++) { if (minimapRoomBuilder.Neighbours[i] == null) { continue; } DungeonMinimapRoomBuilder neighbourMinimapRoomBuilder = minimapRoomBuilder.Neighbours[i].GetComponent <DungeonMinimapRoomBuilder>(); neighbourMinimapRoomBuilder.IsCurrentlyVisited = false; } DungeonMinimapBuilder.Camera.transform.position = minimapRealization[x, y].gameObject.transform.position + new Vector3(0, 0, -10); OnUpdateMinimap.Raise(); }
private const int _ROOM_MINIMAP_WIDTH_ = 1; // == _ROOM_MINIMAP_HEIGHT_ // private const int _ROOM_MINIMAP_HEIGHT_ = 1; // Start is called before the first frame update void Start() { mapBuilder = dungeonManager.GetComponent <DungeonMapRandomBuilder>(); mapMatrix = mapBuilder.RandomMap; rootPosition = mapBuilder.RootPosition; bossPosition = mapBuilder.BossPosition; minimapCamera = GameObject.Find("Minimap Camera"); minimapRealization = new GameObject[mapMatrix.GetLength(0), mapMatrix.GetLength(1)]; instantiateMinimapWithBFS(); for (int i = 0; i < minimapRealization.GetLength(0); i++) { for (int j = 0; j < minimapRealization.GetLength(1); j++) { if (minimapRealization[i, j] == null) { continue; } DungeonMinimapRoomBuilder minimapRoomBuilder = minimapRealization[i, j].GetComponent <DungeonMinimapRoomBuilder>(); minimapRoomBuilder.UpdateNeighbours(); } } for (int i = 0; i < minimapRealization.GetLength(0); i++) { for (int j = 0; j < minimapRealization.GetLength(1); j++) { if (minimapRealization[i, j] == null) { continue; } DungeonMinimapRoomBuilder minimapRoomBuilder = minimapRealization[i, j].GetComponent <DungeonMinimapRoomBuilder>(); minimapRoomBuilder.UpdateMinimapRoomAppearance(); } } }
private void UpdateVisibility() { if (isVisited || isCurrentlyVisited) { // Self gameObject.SetActive(true); // Neighbours foreach (GameObject neighbour in neighbours) { neighbour?.gameObject.SetActive(true); } } else { // Self gameObject.SetActive(false); // Neighbours foreach (GameObject neighbour in neighbours) { if (neighbour != null) { DungeonMinimapRoomBuilder minimapRoomBuilder = neighbour.gameObject.GetComponent <DungeonMinimapRoomBuilder>(); if (minimapRoomBuilder.isVisited || minimapRoomBuilder.isCurrentlyVisited) { gameObject.SetActive(true); break; } } } } }