[Unity] 코드로 타일 깔기

Learning 

When: 1학년 7월 5일

 

How:

원래 타일을 써봤지만 일일이 다 수작업으로 했는데, 수업시간에 타일을 코드를 사용해서 까는 방식이 나와서 그것을 공부하게 되었습니다.

 

Understanding:

일단 타일은 타일맵으로 깔기 때문에 using UnityEngine.Tilemaps; 를 선언해주어야 하고, Tilemap 클래스를 사용해 Tilemap 컴포넌트를 받아 그 컴포넌트에 SetTile() 메서드를 사용해 타일을 까는 방식을 사용합니다. SetTile() 메서드는 Vector3Int라는 int만 들어갈 수 있는 Vector3 형식의 자료형을 사용하여 그리드 좌표에 타일을 깔고, 2번째 인수에 Tile 형식의 인수를 넣어 원하는 타일을 정해 깔 수 있습니다. 아래는 for문을 이용하여 바깥쪽에 groundTileOutLine을 깔고, 안쪽엔 groundTile을 까는 코드입니다.

using UnityEngine;
using UnityEngine.Tilemaps;

public class BoardManager : MonoBehaviour
{
    private Tilemap tilemap;

    public int width;
    public int height;
    public Tile groundTile;
    public Tile groundTileOutLine;

    private void Start()
    {
        tilemap = GetComponentInChildren<Tilemap>();

        for (int y = 0; y < height; y++)
        {
            for (int x = 0; x < width; x++)
            {
                if (x == 0 || x == width - 1 || y == 0 || y == height - 1)
                {
                    tilemap.SetTile(new Vector3Int(x, y, 0), groundTileOutLine);
                }
                else
                {
                    tilemap.SetTile(new Vector3Int(x, y, 0), groundTile);
                }
            }
        }
    }
}

 

Result: 단순하고 반복적인 타일맵은 코드를 사용해서도 깔 수 있습니다.