Unity/2D

Unity 2D tilemap Collision

우대비 2022. 6. 27. 17:43
반응형

방법 1 (자동)

  • Tilemap-> Add Component -> Tilemap Collision 2D 생성하면 자동으로 Collision 만들어줌

 

방법 2 (수동)

  • Collide 전용 tilemap 만들어서 이동이 불가능한 위치에 특정 tile 올림 ex(X모양 이미지 등등.. ) 여기서는 이미지를 이용함

↓↓↓↓↓↓↓

 

이후 Collide 전용으로 만든 tilemap Script 생성해서 다음과 같이 입력함


public class Test : MonoBehaviour
{
    public Tilemap _tilemap; // tilemap에 Collide tilemap을 넣음

    void Start()
    {

    }

    void Update()
    {
        List<Vector3Int> blocked = new List<Vector3Int>();

        // cell의 경계선(카메라에 담기는 영역)을 cellBounds라는 애로 얻어올 수 있음,
            // allPositionsWithin = tilemap에서 tile 하나하나의 정보를 다 가져옴
        foreach (Vector3Int pos in _tilemap.cellBounds.allPositionsWithin)
        {
            // tilemap상에 있는 모든 좌표를 찾아서 list에 넣음
            TileBase tile = _tilemap.GetTile(pos);

            if (tile != null)
                blocked.Add(pos);
        }
    }
}

// 이후 얻은 정보들을 서버로 보내고 서버에서는  정보를 바탕으로 통제하면 

 

 

tilemap.cellBounds 에는 밑의 정보가 들어있음

 

화면 캡처: 2022-06-27 오후 5:04

 

반응형
LIST

'Unity > 2D' 카테고리의 다른 글

Unity 2D Anim  (0) 2022.06.29
Unity 2D Grid상의 좌표  (0) 2022.06.28
Unity 2D Tilemap Collsion 정보 추출  (0) 2022.06.28
Unity 2D Tile Layer  (0) 2022.06.27
Unity 2D Tilemap  (0) 2022.06.27