Exemple #1
0
    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++;
            }
        }
    }
Exemple #2
0
    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;
        }
    }