**이미지는 저작권 이슈로 넣지 못했습니다... 디자이너 분께 허락을 받는다면 카피라이터를 추가하여 글을 수정하도록 하겠다..**
2D 게임에서 UI와 배경 오브젝트의 차이
우유 게임을 만들어야 한다..(무분별한 기획 추가는 개발자를 불안하게 만들어요)
리듬 게임을 넣고싶다는 의견이 나와서 레퍼런스 3개를 참고하여 지금 형태를 만들었다.
게임 배경이 있고 그 앞에 레일, 우유병, 우유를 담는 기계가 있다. 레일을 따라 우유가 나타나고 타이밍 맞게 터치하여 우유를 정량 담으면 되는 게임이다. 그런데 여기서 고민이 생기게 되는데,,, 2D 게임을 처음 만들어 봐서 배경과 UI를 구분하는 것에 고민을 했다. 찾아보니 배경과 UI의 차이는 사용자와 활발히 상호작용을 하냐, 하지 않느냐로 나뉘었다.
그래서 다음과 같이 결론내렸다.
1. 배경
- 게임의 환경을 구성하는 요소
- 그래픽이나 애니메이션, 배경 사운드 등
- 사용자와의 직접적인 상호작용은 없지만, 게임의 분위기와 몰입감을 높여줌
- 단, 충돌 요소가 있을 경우엔 배경에 배치
2. UI
- 버튼, 메뉴, 점수판 등 사용자가 직접 상호작용할 수 있는 요소
- 화면의 크기나 해상도에 따라 자동으로 조정될 수 있도록 설정이 가능함
처음엔 상호작용을 하니까 사용자가 터치를 하는 우유병, 기계는 UI로 만들어야 겠다고 생각했으나 그렇게 만드는 레퍼런스가 없을 뿐더러(사람들이 하지 않는데엔 이유가 있음) 만약 화면이 달라지면 배경과 UI에 배치한 오브젝트들이 따로 놀것이라 생각하여 배경에 배치하고자 했다.
사용자가 터치하면? raycast를 통해 병인지 판별. 병이라면? 우유를 담는 로직을 구현하기로 하고 모든 요소를 배경에 배치하기로 했다.
유니티 2D 해상도 맞추기
나는 해상도가 너무 싫다. 하지만 이것을 미리 설정하거나 고려하지 않고 개발한다면 빌드시에 처절함을 맞볼 수 있으니 크게 짚고 넘어가야한다.
내가 설정한 해상도에 2D sprite를 배치하면 요상하게 배치되는 경우가 있을거다.
(사진이 추가될 자리)
위 사태를 해결하는 시간을 가져보겠다.
1. Projection
카메라의 Projection 설정은 카메라가 장면을 어떻게 렌더링할지를 결정한다. 나는 원근감이 없는 2D 게임을 만들 것이므로 Projection을 Orthographic으로 설정한다.
- Perspective (원근 투영)
- 3D 게임
- 원근감을 제공
- Orthographic (직교 투영)
- 2D 게임이나 특정 3D 상황에서 사용
- 원근감 없음
2. Size
Size는 카메라 Othographic에서 카메라의 시야 범위를 조정한다. 기본적으로 화면의 절반 높이를 나타내고, 값이 클수록 카메라가 더 넓은 범위를 보여준다.
ex) size가 10으로 설정되어 있으면 카메라는 20유닛의 세로 범위를 보여준다. 상단과 하단이 각각 10유닛씩 보인다는 것
(사진이 추가될 자리)
해상도와 sprite를 이미지를 적절하게 적용하려면 Size를 조절하면 된다.
3. Pixels per unit
스프라이트와 텍스처의 크기를 설정하는 중요한 개념이다. 주로 2D게임에서 사용되고 실제 유니티 월드에서 크기를 설정할 수 있는 요소이다.
기본으로 100이 설정되어있다. 이는 1유니티 유닛이 100픽셀이라는 의미다. 예를들어서 100*100 픽셀 크기의 스프라이트가 있고 pixels per unit이 100으로 설정되어 있다면 유니티에선 1*1로 표시된다는 의미다.
값이 높을수록 월드에선 더 작게 보이고 값이 낮을수록 더 크게 보인다. 반비례 한다고 생각하면 편할거 같다.
나는 size를 조절하니까 화면에 딱! 맞아져서 따로 설정하진 않았으나, size조절 후 sprite 크기가 작거나 크다면, scale을 수정하지 말고 PPU를 수정하면 된다. (단, 하나의 프로젝트에선 같은 값을 유지하는 것이 좋다. 그래야 객체의 크기가 일관된다)
위 과정으로 우유 게임을 만들 수 있는 환경이 마련되었다. 이제 본격적으로 로직을 짜야한다. 개발하기 전 냅다 들어가지 않고 아키텍처를 설계하여 들어가면 후반부엔 속도가 퀄리티 차이가 난다. 그러니 조급해 하지 않고 개발 전 설계를 단디 하고 들어가도록 하자...(나에게 하는 말)
'Project > 빵빵빵 타이쿤' 카테고리의 다른 글
[빵빵빵 타이쿤 개발일지] 유니티 Transform과 RectTransform 차이점 (0) | 2024.10.18 |
---|---|
[빵빵빵 타이쿤 개발일지] 유니티 게임 일시정지 구현하기(Time.scaleTime) (4) | 2024.10.16 |
[빵빵빵 타이쿤 개발일지] 좌우로 이동하는 무한 레일 제작. 근데 배경 스크롤링(background scrolling)을 곁들인... (1) | 2024.10.07 |
[빵빵빵 타이쿤 개발일지] OnTriggerEnter가 인식이 안돼요;; (1) | 2024.10.07 |