호우동의 개발일지

Today :

article thumbnail
[Unity 3D] 패킹(Packing)의 필요성과 두가지 시스템( Legacy, Atlas )
Unity Study/Concept 2023. 1. 30. 13:28

Draw Call(Batches) Batches(Draw Call) : CPU가 GPU에게 렌더링 할 항목(텍스처)들을 미리 알려주는 것 어떤 값을 넘겨주냐에 따라서 Draw Call이 결정 Draw Call 관리가 중요한 이유 Draw Call이 쌓일수록 전체적인 성능이 급격히 저하 모바일은 최대 100개 이하의 Draw Call을 유지해야 함 Draw Call을 줄이기 위해 Packing을 사용 Packing Sprite를 하나로 묶는 것 원하는 텍스처들을 가지고 있는 텍스처 뭉치를 만드는 것 Packing 원리 텍스처 하나를 Draw Call을 보냄 하나의 Draw Call 안에서 두 개의 스프라이트를 Render CPU가 GPU에게 텍스쳐를 요청하는 명령을 한 번만 처리할 수 있게 만듦 → 여러 ..

article thumbnail
[Unity 3D] 나인슬라이스(9-Slice)의 사용법과 필요성
Unity Study/Concept 2023. 1. 25. 21:20

9 Slice 이미지를 9조각으로 나누어 영역별로 사이즈를 조절하는 테크닉 Image Type Image 컴포넌트 속성 중 Image Type에서 사용 Sliced와 Tiled에서 사용 9 Slice가 되어있지 않으면 Sliced와 Tiled 사용 불가능 9 Slice 사용 Project에 이미지 원본 파일을 클릭 Inspector에서 Sprite Editor 클릭 아래와 같이 초록색 선으로 9개의 네모 영역을 만든 후, 우측 상단에 Apply 경고 문구가 사라진 것을 확인할 수 있다. 9 Slice를 하면 뭐가 다를까? 그림으로 보는 것이 가장 빠르다. 왼쪽은 Sliced 적용 / 오른쪽은 Simple 이미지이다. Simple은 크기가 바뀔 때마다 전체 이미지 비율이 그에 상응하여 바뀐다. Sliced..

article thumbnail
[Unity 3D] Rect Transform 이해하고 응용하기
Unity Study/Concept 2023. 1. 24. 18:51

RectTransform UI 한정에서 사용해서 컴포넌트 Transform을 상속받음 Transform의 속성/기능 사용 가능 UI는 모두 Transform 대신 RectTransform임 RectTransform 속성 UI 좌표계는 스크린과 다르게 한가운데가 (0,0,0)으로 시작 이는 Anchors(앵커)의 디폴트 값이 (0,0,0)이기 때문 → 앵커 값을 변경하면 포지션 값이 달라진다. 포지션은 Pivot(피벗)과 Anchor(앵커)의 영향을 받는다. Rotation, Scale - Transfrom과 같음. 단, Scale에 Z는 존재하지 않음 Pivot(피벗) Rect Transform의 Position은 Anchor을 원점으로 잡고 가운데 Pivot까지의 거리를 측정하여 UI를 배치 Ancho..

article thumbnail
[Unity 3D] Image 와 Text 컴포넌트 및 프로퍼티 의미와 활용법 정리
Unity Study/Concept 2023. 1. 12. 12:00

Image Canvas Renderer : 상위 Canvas의 UI 요소라는 뜻 Source Image 화면에 나타날 이미지 Sprite 형식의 텍스쳐 타입(Texture Type)만 넣을 수 있음 다른 타입은 넣을 수 없다. Raycast Target 버튼 클릭 같은 터치 이벤트가 해당 UI에 의해 가려질 수 있는가를 설정 뒤에 있는 버튼이 앞에 Image에 가려져 있다고 가정 Raycast Target 체크 → Raycast가 이미지 통과 못함(버튼 클릭 안됨) Raycast Traget 체크 X → Raycast 이미지 통과(버튼 클릭) Image Type Simple : Sprite를 Rect 크기에 따라 그대로 넣는다. Sliced : 스프라이트를 9개의 영역으로 나누어 각자 다른 방식으로 리사..

article thumbnail
[Unity 3D] 캔버스(Canvas)와 UI 기본 개념과 자주 쓰는 옵션 정리
Unity Study/Concept 2023. 1. 9. 12:37

UI UI Component를 생성하면 Canvas, EventSystem도 같이 생성됨 UI 가 화면에 나타나기까지의 과정 3D 렌더링 시스템에서 Vertex(정점)가 Vertex Buffer에 들어감 Vertex Buffer : 렌더링에 사용할 Vertex를 모아놓은 버퍼 Vertex(정점) : 3D 모델링의 가장 기본 단위 정점들이 도형(Polygon)을 이루게 됨 Polygon들이 모여 하나의 모델을 이루게 됨 Canvas 스크린과 매칭되는 UI 출력 영역(도화지) Vertex Buffer가 위치하는 곳 UI가 Canvas의 자식요소여야 볼 수 있음 UI들의 Vertex(정점)들은 사실상 UI가 아닌 Canvas에 저장됨 Canvas Render Mode Screen Space - Overlay ..

article thumbnail
[Unity 3D] 유니티 에셋(Asset)의 식별되는 원리
Unity Study/Concept 2023. 1. 8. 17:23

유니티 에셋이란? 유니티 에셋은 게임 제작에 필요한 모든 요소들을 말한다. 3D 모델, 텍스쳐 이미지, 사운드, 파티클 효과, 유틸리티 등을 모두 유니티에서는 에셋이라고 부른다. 유니티 에셋 내부 유니티 에셋은 무엇으로 이루어져 있을까? 한번 직접 프로젝트 폴더를 열어 알아보자. 에셋 폴더에 있는 Scenes.meta 파일을 텍스트 편집기로 열어본 결과이다. 여러 개의 설정 값들이 적혀있는 것을 확인할 수 있다. 여기서 핵심은 guid라고 적힌 값이다. 유니티에서는 guid를 통해 에셋들을 식별한다. GUID GUID는 유니티에서 에셋들을 구분하기 위해서 주어진 고유한 값이다. 같은 프로젝트 내에서는 고유한 값으로 존재한다고 보면 된다. 즉, 다른 프로젝트라면 같은 GUID 값이 존재할 수 있다는 말이다..

article thumbnail
[유니티 3D] Time.deltaTime의 개념과 활용
Unity Study/Concept 2022. 1. 31. 01:33

Time.deltaTime은 유니티에서 딜레이 계산 등의 시간 계산에서 항상 쓰이는 변수이다. 그런데 정확히 deltaTime이 무엇이고 이걸 굳이 왜 사용해야 할까? deltaTime이란? deltaTime이 무엇인가를 이해하기 위해서는 fps를 먼저 알아야 한다. fps란 frames per second를 뜻하는데 1초에 몇 프레임인가 쉽게 말해서 '1초에 화면이 몇 번 다시 그려지게 되는가?'를 뜻한다. 예를 들어 30 fps라면 1초에 30번 화면이 그려진다는 것이기 때문에 fps가 높을수록 화면이 부드럽게 움직인다. 즉 웬만하면 fps가 높은 것이 좋다고 할 수 있다. 화면이 다시 그려지는 데는 당연히 짧지만 시간이 소요된다. 이를 간격이라는 표현을 사용한다면 그 간격이 바로 deltaTime이..