Version: 2022.3
언어: 한국어
API 업데이터
Unity 2021 LTS로 업그레이드

Unity 2022 LTS로 업그레이드

이 페이지에는 2021 버전에서 2022 LTS로 업그레이드할 때 기존 프로젝트에 영향을 줄 수 있는 Unity 2022 LTS 버전의 변경 사항이 나열되어 있습니다.

참고:2022 LTS는 2022.3.0으로도 알려져 있습니다.

페이지 개요

Articulation Drive forceLimit 프로퍼티가 이제 임펄스 대신 힘 입력을 허용

Articulation Drive forceLimit 기능은 이전에 힘 제한이 아닌 임펄스 제한으로 사용되었습니다.이로 인해 힘 제한이 fixedDeltaTime 값에 따라 달라졌습니다.

이미 이 값을 임펄스로 사용하는 데 조정한 경우 업그레이드할 때 Articulation Body 컴포넌트에 있는 Articulation Drive의 forceLimit 값이 큰 폭으로 잘못될 수 있습니다.

이전 프로젝트를 열 때 확인 사항이 있습니다.프로젝트를 업그레이드할 때 Unity는 잘못된 설정을 방지하기 위해 ProjectSettings > Time 페이지에 설정한 Time.fixedDeltaTime으로 관련 값을 자동으로 나눕니다.이렇게 하면 프로젝트 설정 시간 값에 따라 로봇을 시뮬레이션하는 대부분의 경우를 포착할 수 있습니다.

스크립트에서 커스텀 시간 값을 사용하여 로봇을 시뮬레이션하는 경우 이러한 값을 수동으로 수정해야 합니다.

생성된 라이트맵 UV에 대한 변경

Unity의 UV 생성 절차가 변경되었습니다.모델 임포트 설정의 라이트맵 UV 생성 옵션을 사용하는 프로젝트에서 라이트맵이 손상된 것처럼 보일 수 있습니다.이 문제를 해결하려면 프로젝트의 모든 라이트맵을 리베이크합니다.

이 변경 사항은 라이트맵 UV 생성을 사용하는 프로젝트에만 영향을 줍니다.

UI 툴킷의 GradientField에 대한 변경

Unity 2022.1부터 GradientField의 컬러 피커는 HDR이 기본적으로 활성화되지 않습니다.GradientField를 사용하는 기존 프로젝트는 이제 HDR 컬러 피커 대신 일반 컬러 피커를 사용합니다.

HDR 컬러 피커를 계속 사용하려면 GradientField의 HDR 프로퍼티를 사용하여 활성화하면 됩니다.

런타임에 UI 툴킷 숫자 및 복합 필드를 사용할 수 있음

이제 런타임에서 자동으로 작동하는 다음 필드를 사용할 수 있습니다.

  • DoubleField
  • FloatField
  • IntegerField
  • LongField
  • Hash128Field
  • RectField
  • RectIntField
  • Vector2Field
  • Vector3Field
  • Vector4Field
  • Vector2IntField
  • Vector3IntField
  • BoundsField
  • BoundsIntField

프로젝트의 UXML 파일은 업그레이드 시 업데이트되지 않고 작동하지 않습니다.그러나 UI 빌더를 통해 새로운 승격 타입을 추가하면 이전 Unity 버전과 UXML 에셋의 이전 버전과의 호환성에 문제가 생깁니다.UXML 에셋의 이전 버전과의 호환성을 유지하려면 UXML 파일에서 이전 타입(UnityEditor.UIElements 네임스페이스)을 사용해야 합니다.

입력 관리의 물리 키 옵션이 기본적으로 활성화됨

물리 키 옵션을 사용하면 다른 지역의 사용자에 따라 다를 수 있는 언어별 레이아웃이 아닌 물리 키보드 레이아웃에 키 코드를 매핑할 수 있습니다.예를 들어 일부 키보드에서는 첫 번째 줄의 글자가 ‘QWERTY’로 표시되고 다른 키보드에서는 ‘AZERTY’로 표시됩니다.즉, 잘 알려진 ‘WASD’ 키를 사용하도록 특정 컨트롤을 스크립팅하면 AZERTY 레이아웃 키보드에서 물리적 배열(예: 화살표 키 배열)이 올바르게 되지 않습니다.물리 키를 활성화하면 Unity는 사용자의 실제 레이아웃과 관계없이 일반 ANSI/ISO ‘QWERTY’ 레이아웃을 사용하여 키의 물리적 위치를 나타냅니다.즉, ‘Q’ 키를 지정하면 사용자의 키보드에 해당 위치에 다른 문자가 있더라도 문자 키의 첫 번재 줄에서 항상 가장 왼쪽에 있는 문자가 됩니다.

2022.1부터 이 옵션은 기본적으로 활성화되며 향후 이전 동작을 사용 중단하고 제거할 예정입니다.

BatchRendererGroup에 대한 지원이 추가됨

BatchRendererGroup API는 원래 MegaCity 데모용으로 작성되었지만, 많은 구현 세부 정보 없이는 완전히 문서화되거나 사용할 수 없었습니다.이 API는 처음부터 다시 작성되었으며 완전히 문서화되어 지원됩니다.

새 인터페이스 사용 방법에 대한 내용은 BatchRendererGroup 페이지를 참조하십시오.

렌더 파이프라인

이 업그레이드 가이드에서는 Unity의 빌트인 렌더 파이프라인 2022.2 버전으로 업그레이드하는 방법에 대해 설명합니다.

다른 렌더 파이프라인을 버전 2022.2로 업그레이드하려면 사용 중인 렌더 파이프라인의 문서를 참조하십시오.

다른 패키지를 업그레이드하려면 사용하는 패키지의 문서를 참조하십시오.

인라이튼 베이크된 전역 조명 지원 중단 예정

인라이튼 베이크된 전역 조명 라이트매핑 백엔드는 더 이상 기본적으로 사용할 수 없습니다.프로젝트를 이 버전으로 업그레이드하면 Unity는 인라이튼 베이킹 백엔드를 라이트매퍼 선택 드롭다운에서 제거하고 선택한 인라이튼 베이킹 백엔드가 있는 모든 씬에서 프로그레시브 라이트매퍼로 대체합니다.

Apple Silicon 기기에서 Unity는 프로그레시브 GPU 라이트매퍼를 인라이튼 베이킹 백엔드로 대체합니다.기타 모든 기기에서 Unity는 CPU 프로그레시브 라이트매퍼를 선택합니다.

인라이튼 베이킹 백엔드를 계속 사용하려면 Edit > Project Settings > Editor를 열고 해당 메뉴의 Graphics 섹션에서 Enable Enlighten for Baked GI (Legacy)를 활성화합니다.그러나 2023.1 이상에서는 이 옵션을 사용할 수 없습니다.

Lighting 창에서 최소 바운스를 사용할 수 없음

Lighting 창에서 더 이상 프로그레시브 라이트매퍼의 Minimum Bounces 프로퍼티를 사용할 수 없습니다.

프로젝트를 2022.2로 업그레이드하면 Unity는 Minimum Bounces 값을 라이트매핑에 대한 권장 최소 바운스 수인 2로 재설정합니다. 이 값을 변경하려면 LightingSettings API 프로퍼티 minBounces를 편집합니다.

Unity의 기본 Gradle 템플릿이 변경됨

Unity는 2022.2에서 Android에서 사용되는 모든 툴의 기본 버전을 업데이트했습니다.새 버전은 다음과 같습니다.

Version
SDK
Cmdline-tools 컴포넌트 버전 6.0
Build-tools 컴포넌트 버전 32.0.0
Platform-tools 컴포넌트 32.0.0
플랫폼(API 레벨) 기본적으로 31 및 32 추가됨
Tools 컴포넌트 제거됨
NDK r23b
JDK(OpenJDK) 11.0.14.1+1
Gradle 7.2
Android Gradle 플러그인 7.1.2

Gradle 버전 7.2로 업데이트하면서 일부 build.gradle 파일 설정 옵션이 변경되었습니다.이로 인해 Unity의 기본 Gradle 템플릿을 많이 변경해야 했습니다.Unity는 커스텀 Gradle 템플릿을 새 포맷에 맞게 업그레이드하지 않으므로 커스텀 템플릿 파일이 포함된 프로젝트는 빌드에 실패할 수 있습니다.이를 해결하려면 새 기본 템플릿 파일을 기반으로 커스텀 템플릿 파일을 다시 생성하십시오.

build.gradle 설정 옵션 변경에 대한 내용은 Android Gradle 플러그인 릴리스 노트를 참조하십시오.

내비게이션과 경로 탐색이 Unity 코어에서 AI Navigation 패키지로 이동됨

패키지 문서의 위치는 다음과 같습니다. https://docs.unity3d.com/Packages/com.unity.ai.navigation@latest

이전 버전의 Unity 엔진에서 내비게이션 기능으로 생성한 프로젝트가 있는 경우 다음 중 하나를 수행할 수 있습니다.

  • 프로젝트를 그대로 계속 사용
  • 프로젝트를 전환하여 새 패키지 사용

두 경우 모두 AI Navigation 패키지가 자동으로 설치되고 프로젝트에 추가됩니다.

새 패키지를 사용하려면 다음과 같이 프로젝트를 전환해야 합니다.

  1. Window > AI > NavMesh Updater로 이동합니다.
  2. NavMesh Updater 창에서 전환할 데이터의 종류를 선택합니다.
  3. Initialize Converters를 클릭하여 선택한 데이터 타입을 감지하고 표시합니다.
  4. 전환할 데이터를 선택합니다.
  5. Convert Assets를 클릭하여 전환을 완료합니다.

전환 프로세스의 일환으로 NavMesh Updater는 다음과 같은 변경을 수행합니다.

  • 이전에 베이크되어 씬에 임베드된 모든 내비메시는 이제 내비게이션이라는 새 게임 오브젝트에 생성된 NavMeshSurface 컴포넌트에서 참조됩니다.
  • 이제 Navigation Static으로 표시된 모든 오브젝트에는 적절하게 설정한 NavMeshModifier 컴포넌트가 있습니다.

다른 씬에 있는 내비메시가 다른 에이전트 설정으로 베이크된 경우 새 에이전트 타입을 생성하여 이러한 설정을 일치시켜야 합니다.에이전트 타입을 생성하려면 다음을 수행하십시오.

  1. Window > AI > Navigation으로 이동합니다.
  2. Agents를 선택합니다.
  3. 새 항목을 생성하고 관련 설정을 지정합니다.

새 항목을 생성했으면 다음을 수행해야 합니다.

  • 해당 씬에 대해 생성된 내비게이션의 해당 NavMeshSurfaces에 새로 생성된 에이전트 타입을 할당합니다.
  • 해당 내비메시를 사용할 NavMeshAgents에 에이전트 타입을 할당합니다.

기존의 각 내비메시에 사용되는 설정을 찾으려면 프로젝트(Project) 창에서 NavMesh .asset 파일을 선택합니다.내비메시 설정이 인스펙터에 표시됩니다.

프로젝트가 Unity의 NavMeshComponents GitHub 저장소에서 다운로드한 스크립트로 정의된 NavMeshSurface, NavMeshModifier, NavMeshModifierVolume, NavMeshLink 컴포넌트를 사용하는 경우, 프로젝트에 AI Navigation 패키지를 추가하기 전에 해당 스크립트와 관련 파일을 제거하십시오.이러한 스크립트를 제거하지 않으면 콘솔에서 이러한 컴포넌트와 관련된 충돌 및 오류가 발생할 수 있습니다.새 컴포넌트는 다음 컴포넌트를 사용할 경우를 제외하고 프로젝트에서 이전 컴포넌트와 동일한 동작을 반영합니다.

  • 이제 NavMeshSurface 컴포넌트에는 베이킹 프로세스에 NavMeshModifier가 있는 오브젝트만 사용할 수 있는 옵션이 포함됩니다.
  • 이제 계층 구조에서 NavMeshModifier 컴포넌트를 자식 오브젝트에 적용할지 지정할 수 있습니다.
API 업데이터
Unity 2021 LTS로 업그레이드