1. Package Manager 개념
- 사용 이유: 유니티 프로젝트는 프로젝트 내부에 직접 추가하는 것이 아니라 각 컴퓨터의 글로벌 캐시를 참조해서 사용함
- 프로젝트 크기 경량화: 불필요한 중복 제거로 디스크 사용량 감소
- 설치 속도 개선: 이미 다운로드된 패키지는 즉시 참조 가능
- 협업 시 다른 컴퓨터에 패키지가 설치되지 않았다면, 프로젝트를 열 때 필요한 패키지를 인터넷에서 자동 다운로드
manifest.json에 버전 정보 기록, 팀원 간 동일 버전 패키지 사용 보장

자주 사용하는 주요 패키지
- AI navigation: 유니티 ai 내비게이션 시스템을 구현
- Cinemahine: 스마트 추적 카메라와 복잡한 카메라 연출 구현
- Timeline: 영상 편집 프로그램처럼 컷신, 이벤트 시퀀스를 제작 가능(Cinemahine 종속)
- Universal RP(URP): 여러 플랫폼에 범용적으로 사용되며, 성능에 집중한 파이프라인(후처리 기능도 포함)
2. 랜더 파이프라인(Render Pipeline)
- 3D 씬을 화면에 그리는 일련의 과정
- 이를 수정한다는 것은 3D 오브젝트가 어떤 과정을 통해 표현될지를 정하는 것
- 계산 단위
- 픽셀 단위: 정밀하지만 계산량이 커짐(하나하나의 색을 계산)
- 정점(vertex): 점부터 점까지만 계산, 품질은 떨어지지만 성능 개선
3. GI(global illumination)
- 다이렉트로 오는 빛만 계산하는게 아니라 빛이 굴절, 반사되서 들어오는 것 까지 보여주는 것(디테일함)
4. SRP(Scriptable Render Pipeline)
URP 활성화하기(처음부터 URP로 만들었다면 안해도 됨)
-
Universal RP 설치하기
-
렌더 파이프라인 에셋 생성
- Project - Rendering

- Renderer 붙은거를 → Data, 다른거를 Pipeline으로 변경

- Pipeline: Universal Render Pipeline Asset 타입
- 이것은 여러개 만들 수 있음 → 사양별로 나눠서 관리 가능
-
프로젝트에 활성화된 렌더 파이프라인 변경
5. URP로 변환 시 깨진 셰이더 복구하기
- Built-in 에서 Shader는 스탠다드(standard)임.
- URP로 변환하게 되면 스탠다드 셰이더가 제대로 작동하지 않는다.
- URP에서 호환되게 하기 위해 UniversalRendererPipeline/Lit 등 다른 것으로 변환
- 한번에 수정하기
- 프로젝트 창에서 해당 머테리얼을 선택 후,
- Edit - Rendering - Materials - Convert Selected Built-in Materials to URP
- Window - Rendering - Rendering Pipeline convertor - 전부 체크 후 변환
6. 렌더링 경로 설정(ZombieRenderData)

Forword(Default) → Deferred 변경
- Path는 처리되는 순서를 결정
Forward: 오브젝트를 그릴 때마다 해당 오브젝트에 영향을 주는 모든 라이팅도 함께 계산
- 성능이 가볍지만 느리며 간략화되고 왜곡됨
- But 오브젝트와 광원이 움직이거나 많아지면 연산량이 급증
- 이를
Deferred 렌더링 or 셰이딩으로 바꿔 온전하게 표현
- 렌더링은 4개에서 9개까지 광원에 적용됨
Deferred
- 연산을 미뤄서 실행하는 방식
- 첫 번째(G-buffer 생성) 패스에서 Mesh를 그리지만 색과 라이팅을 계산하지 않음
- 대신 오브젝트의 여러정보를 종류별로 G-buffer에 저장
- 두 번째 패스에서 G-buffer 정보를 기반으로 ****최종 컬러를 결정
- 렌더링 개수가 제한되지 않음
- Accurate G-buffer Normals
7. 렌더 파이프라인 설정 변경
- 메인 Light외 추가 Light에도 그림자 발생

- 후처리 모드 설정
- 컬러 그레이딩 후처리 효과가 더 정확한 컬러 정확도를 이루게함