void CreateAreaChecker() //สร้างตัว check พื้นที่โดยใช้ mouse position เป็นจุดเริ่มต้น { int size = 0; TileMapSelectMarker.markCellPos[0] = selectTilePos; //mouse position for (int x = TileMapSelectMarker.markCellPos[0].x; x < (TileMapSelectMarker.markCellPos[0].x + ZoneSize.x); x++) { for (int y = TileMapSelectMarker.markCellPos[0].y; y < (TileMapSelectMarker.markCellPos[0].y + ZoneSize.y); y++) { TileMapSelectMarker.markCellPos[size] = new Vector3Int(x, y, 0); if (isSelect) //bool check ว่าตัวพื้นที่เราเลือกนั้นอยู่ในระยะที่สร้างได้รึป่าว { TileBase tileBase = tileMapReader.GetTileBase(TileMapSelectMarker.markCellPos[size] - (Vector3Int.FloorToInt(adjIslandPos))); TileData tileData = tileMapReader.GetTileData(tileBase); if (tileData != null) //check ว่ามี Tilemap ให้เราเลือกรึป่าว { if (BuildingType == 0) { AreaCheck[size] = ((tileData.isGround || tileData.isShortGrass || tileData.isMountainZone) && !tileData.isWater); } else if (BuildingType == 1) { AreaCheck[size] = ((!tileData.isGround || !tileData.isShortGrass || !tileData.isMountainZone) && tileData.isWater); } else if (BuildingType == 2) { AreaCheck[size] = (tileData.isGround || tileData.isShortGrass || tileData.isMountainZone || tileData.isWater); } } else { AreaCheck[size] = false; } AreaCheckMethod(); //ตัว check ว่าพื้นที่ "ทั้งหมด" ที่เราเลือกนั้นสามารถสร้างได้รึป่าว } size++; } } }
void Start() { TileBase tileBase = tileMapReader.GetTileBase(Vector3Int.FloorToInt(this.transform.position) - Vector3Int.FloorToInt(BuildManager.BMinstanse.adjIslandPos)); TileData tileData = tileMapReader.GetTileData(tileBase); if (tileData != null) { if (!tileData.isMountainZone) { isOverLap = true; } else { this.name = "Stone" + " / " + Vector3Int.FloorToInt(this.transform.position); } } else { Debug.Log("NULL"); isOverLap = true; } }