BoxFill(Vector3Int position, TileBase tile, int startX, int startY, int endX, int endY)
타일 맵에서 할당한 타일로 상자를 채웁니다.
주어진 좌표에서 시작하여 처음부터 끝까지(포함) 제한을 채웁니다.
BoxFillExample Script
public class BoxFillExample : MonoBehaviour
{
    public Tilemap tilemap;
    public TileBase tileBase;
    
    void Update() {
        if (Input.GetKeyDown(KeyCode.Q)) {
            tilemap.BoxFill(Vector3Int.zero, tileBase, -5, -5, 5, 5);
        }
    }
}
for문과 setTile을 활용하여 타일을 생성하는 방법도 존재하지만
위와 같이 boxfill을 활용하여 생성 지점으로부터 Start x, y에서 end x, y 지점까지 타일을 생성할 수 있습니다.
※ 시작 지점에 타일이 생성되어있는 경우 타일을 채우지 않습니다. (시작 지점의 타일 제거)
※ 타일 맵의 사이즈가 작을 경우 아래와 같이 원하는 만큼 가득 채우지 못합니다. (타일 맵의 사이즈를 크게 변경)

ClearAllTiles()
타일 맵에 배치된 모든 타일을 지웁니다.
ClearAllTiles Script Example
public class ClearAllTiles : MonoBehaviour {
   
    public Tilemap tilemap;
    public TileBase tileBase;
    void Update() {
        if (Input.GetKeyDown(KeyCode.Q)) {
            tilemap.BoxFill(Vector3Int.zero, tileBase, -5, -5, 5, 5);
        }
        if (Input.GetKeyDown(KeyCode.W)) {
            tilemap.ClearAllTiles();
        }        
    }
}
ClearAllTiles을 사용한 후에는 Tilemap의 Size가 0,0으로 작아 지기 때문에
Boxfill을 재사용했을 때 원하는 만큼 타일이 깔리지 않는것을 확인 할 수 있습니다.
그러므로 Clear를 사용한 후에는 Tilemap.Size를 다시 변경해주어야 합니다.

반응형
    
    
    
  그리드형
    '유니티정보' 카테고리의 다른 글
| 유니티 구 버전 설치하기 (0) | 2023.03.20 | 
|---|---|
| 유니티 GetAxis GetAxisRaw 차이 (0) | 2022.08.24 | 
| 유니티 Tilemap Script example 1 (1) | 2022.07.31 | 
| Unity Ads 관련 문제 체크해보기 (0) | 2022.05.09 | 
| 유니티 Rigidbody 알아보기 (0) | 2022.02.22 |