16:9 화면에서 tilemap의 그리드(뒤에 연한색 선)와 카메라 화면(흰색 진한선)이 정확히 맞아 떨어지지않음
비율 차이가 있음
16:10 화면에서는 fit하게 맞음
이거때문에 화면 비율을 고정할수없으니까 우회하거나 코드로 해결할 방법을 찾아야함
- ground 및 wall 등을 안쪽으로 한칸 더 들어가게 배치하고 끝부분을 그라데이션 등으로 유연하게 이어지는 이미지 배치 → 화면비가 변동적일 경우
- grid를 카메라 화면 기준으로 재계산하여 갱신 → 화면비가 고정일 경우
결론 : 기준 화면비를 16:9로 맞춰서 작업하고 화면비가 바뀔경우 1번 방법으로 레터박스를 background로 대치하는 방법을 사용하자
[그리드 사이즈 맞추기]
- 카메라 화면에 대응되는 grid의 position을 구한다.
- 카메라 화면에 맞는 gird의 사이즈를 구한다
- grid position 및 size 갱신
- grid를 화면비와 같은 비율로 나눠 1칸의 사이즈를 원하는 정사각형으로 만든다
public void AdjustGridSizeToFitScreen(Vector2 position, Vector2 gridSize, Vector2 gridCellRatio)
{
_map.layoutGrid.transform.position = position;
_map.layoutGrid.cellSize = new Vector3(gridSize.x / gridCellRatio.x, gridSize.y / gridCellRatio.y, 1);
}
사이즈를 조정해서 grid를 fit하게 맞추었더니 tile의 sprite 사이즈가 맞지않는다
→ pixel per unit의 사이즈를 재계산하여 맞춘다
sprite 세팅을 바꾸는작업이라 runtime중에는 작업량이 크기때문에
초기에 editor를 통한 선작업으로 해주는걸 추천한다.
PPU(PixelPerUnit) = 16(원래 ppu사이즈) / 1.282999(grid의 cell 사이즈);
TODO
[tile을 안쪽으로 배치하기 - 레터박스 개념]
- grid의 화면비는 16:9로 유지하여 세팅합니다
- screen의 화면비만큼 차이나는 부분을 background tile로 메꾸어줍니다
위 개념 공부해보고싶ㄷ
'공부' 카테고리의 다른 글
Cursor ai with figma (0) | 2025.04.20 |
---|---|
랜덤 맵 생성] 2. 횡스크롤 수평 랜덤맵 타일맵으로 만들기 (0) | 2025.02.19 |
랜덤 맵 생성] 1. 횡스크롤 수평 랜덤맵 생성하기 (0) | 2025.02.09 |
Unity내의 병렬적 작업 처리와 유사 개념 정리 (0) | 2025.02.04 |
[TIL] 250111 Dependency Injection 개념 공부 (0) | 2025.02.04 |
댓글