* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다
https://www.inflearn.com/roadmaps/355#introduce
MMORPG 게임 개발, 켠김에 끝판왕까지! (유니티 + C#) 로드맵 - 인프런
C#, Unity 스킬을 학습할 수 있는 게임 개발 로드맵을 인프런에서 만나보세요.
www.inflearn.com
* 에셋을 다운로드 받아 씬을 열었을 때,
Scene 뷰와 Game 뷰 모두에서 오브젝트가 핑크색으로 보이는 현상이 발생했다
[🔍 이 현상이 발생하는 이유는 다음과 같다]
(1) 머리티얼에 할당된 셰이더가 존재하지 않거나 호환되지 않을 때
(2) 셰이더 또는 텍스처가 로드되지 않았거나 손상되었을 때
* 원인 분석 : 동일한 에셋, 서로 다른 두 버전
에셋 폴더를 자세히 살펴보니 다음과 같이 Standard 버전과 URP 버전, 두 가지 버전이 존재했다
유니티는 이 버전들을 동시에 지원하지 않기 때문에, 잘 선택해야 했다
* Standard 버전과 URP 버전 : 렌더 파이프라인(Render Pipeline)
유니티에서 게임 화면을 그리는 방식(렌더링 로직의 흐름)을 의미하며, 다음과 같이 세 가지 주요 렌터 파이프라인이 존재한다
이름 | 특징 |
Built-in (기본) | 가장 오래된 기본 파이프라인 Unity 2018까지 주로 사용됨 |
URP (Universal RP) | 가벼우면서도 유연한 최신 파이프라인 모바일부터 PC까지 범용 지원 |
HDRP (High Definition) | 고사양 PC/콘솔용 고품질 그래픽에 최적화된 파이프라인 |
* 에셋 버전별 차이
1. Standard 버전(Medieval Town Exteriors_2018.4.15_Standard.unitypackage)
- 기본 렌더 파이프라인(Built-in) 용으로 제작
- Standard Shader를 기반으로 동작
- URP/HDRP 환경에서는 호환되지 않아 핑크색으로 보임
2. URP 버전(Medieval Town Exteriors_2019.3.2_URP.unitypackage)
- 유니티의 URP 프로젝트용 에셋
- URP 전용 셰이더와 머티리얼을 사용
- Built-in 프로젝트에서는 깨져 보임
* 최종 정리 및 해결 방법
유니티6를 사용하기 때문에, 당연히 가장 최신 버전 에셋(2019.3.2_URP 버전)을 다운 받아야 한다고 생각했다
그래서 URP 버전을 다운 받았지만,
현재 프로젝트는 Built-in 렌더 파이프라인 환경이였기 때문에 에셋이 정상적으로 작동하지 않았다
해결책을 찾는 과정에서 렌더 파이프라인의 차이가 원인이라는 것을 알게 되었고,
이에 따라 Standard 버전을 다운 받고 임포트한 결과, 정상적으로 렌더링 되는 것을 확인했다
* 유니티6부터 바뀐 Auto Generate
Bake On Scene Load로 변경된 자동 베이크 시스템
* Auto Generate 체크박스(기존 방식)
ㄴ 자동 베이크
ㄴ 수동 베이크
* Bake On Scene Load 드롭다운(유니티 6 이후 바뀐 방식)
ㄴ Auto - 씬이 변경될 때마다 자동으로 라이팅 데이터 베이크
ㄴ If Missing Lighting Data - 씬에 라이트맵 데이터가 없을 경우에만 자동 베이크
ㄴ Never - 수동 베이크
* Auto 옵션이 빠지는 조건(Built-in 기준)
(1) 씬에 라이트가 하나도 없거나, 모든 라이트가 베이크되지 않도록 설정
(2) 라이트맵 대상 Static 오브젝트가 씬에 하나도 없는 경우
(3) 사용하는 LightingSettings 에셋이 스크립트로 생성되며 내부적으로 Auto를 꺼둔 상태
(4) Lightmapper가 None으로 설정된 비정상적 상태
* 내비메시(NavMesh)
게임 내 AI 캐릭터가 이동 가능한 경로(예: 장애물을 피해 목적지까지 도달)를 계산하도록 도와주는 시스템
Window > AI > Navigation
https://docs.unity3d.com/kr/2022.3/Manual/nav-BuildingNavMesh.html
내비메시 빌드 - Unity 매뉴얼
레벨 지오메트리에서 내비메시 생성 프로세스를 내비메시 베이킹이라 부릅니다.이 프로세스는 내비게이션 정적으로 마크된 렌더 메시와 모든 게임 오브젝트의 터레인을 수집한 후 처리하여 레
docs.unity3d.com
https://docs.unity3d.com/Packages/com.unity.ai.navigation@2.0/manual/index.html
* 유니티6에서는 NavMesh 기능이 패키지 분리되어 기본 설치 상태에서는 보이지 않는다
따라서 예전처럼 Window > AI > Navigation 경로를 찾아도 메뉴 자체가 없다
패키지 설치가 필요하다
* AI Navigation 패키지 설치
Window > Package Manager > 좌측 상단의 Unity Registry 클릭 > 검색창에 AI Navigation 입력 > Install
* 설치 완료된 모습
* Bake 기능이 필요했지만, 유니티6에서는 기존 Navigation 창에서 Bake 탭이 사라졌다
ㄴ 대신, 씬 내 GameObject에 NavMeshSurface 컨포넌트를 추가한 뒤
그 컨포넌트의 Bake 버튼을 사용해 NavMesh를 생성해야 한다
'게임프로그래밍 > Unity_C#' 카테고리의 다른 글
[멋쟁이사자처럼부트캠프] 유니티 게임 개발 5기(2025.05.14) (0) | 2025.05.14 |
---|---|
[멋쟁이사자처럼부트캠프] 유니티 게임 개발 5기(2025.05.13) (0) | 2025.05.13 |
[MMORPG 게임 개발(C#, Unity)] Part 3. 오브젝트 풀링(Object Pooling), 코루틴(Coroutine), 데이터(Data) (0) | 2025.05.05 |
[MMORPG 게임 개발(C#, Unity)] Part 3. 3D Sound 효과가 적용되지 않을 때 (0) | 2025.05.01 |
[MMORPG 게임 개발(C#, Unity)] Part 3. UI (0) | 2025.04.28 |