public GeneralBuilding() { levelManager = GameObject.FindObjectOfType <LevelManager>(); resourceManager = GameObject.FindObjectOfType <ResourceManager>(); uiController = GameObject.FindObjectOfType <UIOilController>(); buildingManager = GameObject.FindObjectOfType <BuildingManager>(); }
public void Initialize(Vector2Int worldSize) { levelManager = FindObjectOfType <LevelManager>(); uiController = FindObjectOfType <UIOilController>(); GameObject tilemapGameObject = GameObject.Find(ObjectnamesConstant.AVAILIBLE_BUILDING); availibleBuildingTilemap = tilemapGameObject.GetComponent <Tilemap>(); GameObject availibleBuildingForShowGameObject = GameObject.Find(ObjectnamesConstant.AVAILIBLE_BUILDING_FOR_SHOW); availibleBuildingForShowTilemap = availibleBuildingForShowGameObject.GetComponent <Tilemap>(); if (availibleBuildingTilemap == null) { throw new ArgumentNullException(); } BoundsInt bounds = availibleBuildingTilemap.cellBounds; availibleBuildingOffset = new Vector2Int(bounds.x, bounds.y); var forShowBound = availibleBuildingForShowTilemap.cellBounds; /* forShowBound.x = availibleBuildingOffset.x; * forShowBound.y = availibleBuildingOffset.y;*/ IsAvailibleBuilding = new bool[worldSize.x, worldSize.y]; for (int x = 0; x < worldSize.x; x++) { for (int y = 0; y < worldSize.y; y++) { IsAvailibleBuilding[x, y] = true; } } for (int x = 0; x < levelManager.worldSize.x; x++) { for (int y = 0; y < levelManager.worldSize.y; y++) { /* Vector2Int size = new Vector2Int(); * size.x = availibleBuildingTilemap.size.x % 2 > 0 * ? availibleBuildingTilemap.size.x / 2 + 1 * : availibleBuildingTilemap.size.x / 2; * size.y = availibleBuildingTilemap.size.y % 2 > 0 * ? availibleBuildingTilemap.size.y / 2 + 1 * : availibleBuildingTilemap.size.y / 2 + 1;*/ TileBase tileBase = availibleBuildingTilemap.GetTile(new Vector3Int(x + levelManager.offset.x, y + levelManager.offset.y, 0)); if (tileBase == null) { IsAvailibleBuilding[x, y] = false; continue; } switch (tileBase.name) { case "noBuilding": IsAvailibleBuilding[x, y] = false; break; case "building": IsAvailibleBuilding[x, y] = true; break; } } } }