이 페이지에는 이전 Unity 버전에서 5.6으로 업그레이드할 경우 기존 프로젝트에 영향을 미칠 수 있는 변경 사항이 나열됩니다.
예제:
데이터 포맷이 변경되어 다시 베이크해야 할 수 있음
기존 함수, 파라미터, 컴포넌트 값의 의미 또는 동작이 변경됨
기능 지원 중단(대체 기능 제안)
스크립트 직렬화 오류가 더 이상 작동하지 않음
Unity 5.4에서 처음 나타난 스크립트 직렬화 오류는 블로그 포스트에서 자세히 설명되어있습니다. 스크립트 직렬화 오류는 Unity 5.6 이상에서 항상 관리 예외를 발생시킵니다.
Unity 5.5의 동작은 Unity 5.4와 동일합니다.
PlayerSettings.apiCompatibilityLevel 지원 중단
이제 플랫폼별 설정으로 변경되었습니다. 대신 PlayerSettings.SetApiCompatibilityLevel 및 PlayerSettings.GetApiCompatibilityLevel을 사용합니다. PlayerSettings.apiCompatibilityLevel은 계속 제 기능을 수행하지만 현재 활성인 플랫폼에만 영향을 미칩니다.
조명 변경 사항
방향성 스페큘러 라이트맵이 제거되었습니다.
그 결과로 LightmapsMode.SeparateDirectional이 제거되었습니다. 대신 LightmapsMode.CombinedDirectional을 사용합니다.
Unity 5.6에서 스페큘러 하이라이트를 얻는 바람직한 방법은 다음과 같습니다.
직접 스페큘러의 경우, 실시간 직접 조명을 비추는 정적 광원은 차감 모드를 제외한 모든 모드에서 고품질 스페큘러 하이라이트를 제공합니다. 5.6 사용자 매뉴얼의 온라인 조명 섹션에서 혼합 조명 문서를 참조하십시오.
혼합 모드 조명 개선
Unity 5.5의 혼합 모드 조명은 Unity 5.6에서 고정 조명 모드로 대체되었습니다. 이로 인해 많은 것이 변경되었으며, 5.6 사용자 매뉴얼의 온라인 조명 섹션에 있는 조명 모드 문서와 특히 새로 사용 가능한 옵션에 대해 자세히 설명하는 고정 모드 초안 문서를 주의 깊게 읽어보는 것이 좋습니다.
Unity 5.6 이전 프로젝트는 Subtractive 모드(5.6 사용자 매뉴얼의 온라인 조명 섹션에서 Subtractive Light 모드 참조)로 업그레이드됩니다. 이 모드는 Unity 5.5의 Mixed 조명과 가장 유사합니다.
하지만 이 모드는 Unity 5.6에서 품질이 가장 낮은 모드이므로 다른 모드를 사용해 보면서 프로젝트에 더 적합한지 확인해야 합니다. Shadowmask가 적극 권장됩니다(특히 이제는 사용되지 않는 이전의 방향성 스페큘러 라이트맵을 사용하는 경우 5.6 사용자 매뉴얼의 온라인 조명 섹션에서 Shadowmask 페이지와 Distance Shadowmask 페이지 참조).
새 Unity 5.6 프로젝트의 디폴트 모드는 Distance shadowmask입니다(5.6 사용자 매뉴얼의 온라인 조명 섹션에서 Distance Shadowmask 페이지 참조).
라이트 프로브
Unity 5.6에서는 라이팅 창에서 라이트 프로브에 직접 조명을 추가할 수 있는지 여부를 더 이상 선택할 수 없습니다. 이제 이 작업은 광원 타입과 고정 모드에 따라 자동으로 수행됩니다. 따라서 직접 조명이 누락되지 않고 라이트 프로브를 사용하는 동적 오브젝트에 이중 조명이 없도록 보장되므로 프로세스가 크게 간소화됩니다.
새로운 GPU 인스턴스화 워크플로
이제는 GPU 인스턴스화에 사용되는 모든 머티리얼에 새로운 Enable Instancing 체크박스를 선택해야 합니다. 이 작업은 GPU 인스턴스화의 올바른 작동을 위해 필요합니다.
Unity는 머티리얼이 5.6 이전 셰이더를 사용하는지 확인할 수 없으므로 체크박스가 자동으로 선택되지 않습니다.
업그레이드 오류가 SpeedTree 에셋에도 적용되어 Enable Instancing 선택이 가능하도록 SpeedTree 머티리얼을 다시 생성하는 데 도움이 됩니다.
참고: 새로 도입된 절차적 인스턴스화 셰이더(#pragma instancing_options procedural:func
가 있는 셰이더)에는 이 변경 사항이 필요하지 않습니다. PROCEDURAL_INSTANCING_ON
키워드가 있는 셰이더에는 영향이 없기 때문입니다.
파티클 시스템 변경 사항
렌더러 모듈의 Custom Vertex Streams
는 이제 Particles/Alpha Anim Blend
셰이더를 사용하는 파티클 시스템의 수동 업그레이드를 요구할 수 있습니다. 이 상황에서는 간단히 중복 UV2 스트림을 제거하기만 하면 됩니다.
그 이유는 경우에 따라 이전 버전과의 호환성을 유지하기 위해 중복 스트림이 필요하므로 완전히 신뢰할 수 있는 자동 업그레이드 솔루션이 없기 때문입니다. Normal 및 AnimFrame 스트림도 필수는 아니지만 있어도 문제를 초래하지 않습니다. 고정 파티클 시스템 설정은 다음과 같습니다.
둘째, 업그레이드된 이미션 모듈로 인해 버스트 이미션에 연결된 애니메이션 바인딩이 해제됩니다. 해당 프로퍼티를 다시 바인딩하기 위해 필요합니다.
애니메이터 변경 사항
Animate Physics: 애니메이터에 _Animate Physics_가 선택되어 있는 오브젝트에 연결된 리지드바디에는 이제 리지드바디가 애니메이션화될 때 속도가 가해집니다. 그러면 다른 물리 오브젝트와 올바르게 물리적으로 상호작용하고 애니메이터가 Animation 컴포넌트에 의해 애니메이션화되는 오브젝트의 동작에 맞춰집니다.
이 변경 사항은 애니메이션화된 리지드바디가 다른 리지드바디와 상호작용하는 방법에 영향을 미치므로(리지드바디가 프레임마다 텔레포트되지 않고 이동됨), Animate Physics 가 포함된 애니메이터가 올바르게 동작하는지 확인해야 합니다.
2D 스프라이트 동적 배칭
2D 스프라이트가 포함된 업그레이드된 프로젝트에서 동적 배칭을 사용해야 합니다. 그러면 Adreno 및 Mali 칩셋이 탑재된 기기에서 중대한 스프라이트 렌더링 성능 문제가 발생하지 않습니다.
동적 배칭을 사용하려면 PlayerSettings(메뉴: Edit > Project Settings > Player)를 엽니다. Other Settings 섹션을 열고 Rendering__에서 Dynamic Batching__ 체크박스를 선택하고 Graphics Jobs (Experimental) 체크박스를 선택 해제합니다.이 설정은 5.6에서 만든 프로젝트의 디폴트 설정입니다.
그래픽스 작업은 동적 배칭에 영향을 미치지 않지만, 때로는 Vulkan과 DirectX12를 사용하는 플랫폼에서 예기치 못한 동작을 초래합니다.
NUnit 라이브러리 업데이트됨
Unity Test Runner에는 .NET 언어용 오픈 소스 유닛 테스트 라이브러리인 NUnit 라이브러리의 Unity 통합이 사용됩니다. Unity 5.6에서는 이 라이브러리가 2.6 버전에서 3.5 버전으로 업데이트됩니다. 이 업데이트로 인해 기존 테스트에 영향을 미칠 수 있는 브레이킹 변경 사항이 몇 가지 도입되었습니다. 자세한 내용은 NUnit 업데이트 가이드를 참조하십시오.
* 2017–05–19 편집 리뷰를 거쳐 페이지 수정됨