유니티 Tilemap Script example 2

2022. 8. 1. 16:26유니티정보

반응형

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 지점까지 타일을 생성할 수 있습니다.

※ 시작 지점에 타일이 생성되어있는 경우 타일을 채우지 않습니다. (시작 지점의 타일 제거)

※ 타일 맵의 사이즈가 작을 경우 아래와 같이 원하는 만큼 가득 채우지 못합니다. (타일 맵의 사이즈를 크게 변경)

Q 입력을 받아 0,0,0 지점으로부터 -5 ~ 5 까지 타일을 생성하는 심플한 예제입니다.

 

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를 다시 변경해주어야 합니다.

 

ClearAlltiles을 사용하여 배치된 타일을 전부 제거하고  Boxfill을 재사용하는 예제입니다.

 

반응형

'유니티정보' 카테고리의 다른 글

유니티 구 버전 설치하기  (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