-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
Tilemap.cellBounds에 관련해서 질문 있습니다.
23.05.05 12:20 작성 23.05.05 12:27 수정 조회수 576
0
제가 Tilemap을 아래와 같이 만들어 놨는데요,cellBounds에 break point를 잡아서 디버깅을 해보니 x.Max = 20, y.Max = 9가 나오더라구요. (제가 찍은 tilemap을 일일히 하나하나 세보니 x의 최대 좌표는 19고 y는 8인데도 말이죠.)그렇다면 위 코드와 같이 반복문을 돌면 타일이 찍혀있지 않는 y = 9, x = 20 일 때도 반복문을 도니까 제가 만든 맵보다 가로 세로가 한 줄씩 늘어나게 출력됩니다. (아래 사진처럼 맨 윗줄과 오른쪽 줄에 0이 출력되서 나옵니다.)
제가 생각하기에는 아래와 같이 코드를 짜야 알맞은xMin, xMax, yMin, yMax값과 map이 출력될 거 같은데 혹시 제가 틀린건가요?
using (var writer = File.CreateText($"Assets/Resources/Map/{go.name}.txt"))
{
writer.WriteLine(tmBase.cellBounds.xMin);
writer.WriteLine(tmBase.cellBounds.xMax - 1);
writer.WriteLine(tmBase.cellBounds.yMin);
writer.WriteLine(tmBase.cellBounds.yMax - 1);
for (int y = tmBase.cellBounds.yMax - 1; y >= tmBase.cellBounds.yMin; y--)
{
for (int x = tmBase.cellBounds.xMin; x < tmBase.cellBounds.xMax; x++)
{
TileBase tile = tm.GetTile(new Vector3Int(x, y, 0));
if (tile != null)
writer.Write("1");
else
writer.Write("0");
}
writer.WriteLine();
}
}
답변을 작성해보세요.
1
댕진형
2023.10.01
https://forum.unity.com/threads/tilemap-compressbounds.859426/
여기서 해답 얻으실수 있습니다 :)
직관적이지 못해서 찾기 많이 어려우실거에요
1
Rookiss
지식공유자2023.05.08
유니티 툴 이슈 같은데 이미 칠한 부분을 삭제해도 저렇게 한줄/한칸이 남더라고요.
옵션중에 다시 컴팩트하게 있는 부분만으로 사이즈를 줄이는 기능이 있던 것 같은데
너무 오래 돼서 기억이 안 나네요. 일단 수동으로 맵을 고치시거나
코드에서 임시 처리를 해보시기 바랍니다. 아마 강의에서의 맵은 빈 줄/칸이 없을거에요.
답변 2