Version: 2017.3
iOS
Unity iOS 기초

iOS 개발 시작

iPhone과 iPad 같은 기기를 위해 게임을 개발할 때는 데스크톱 PC 게임과는 다른 접근법이 필요합니다. PC 시장과 달리 이러한 기기의 하드웨어는 표준화되어 있고, 별도의 비디오 카드를 탑재한 컴퓨터만큼 빠르거나 강력하지 않습니다. 그러므로 이러한 플랫폼을 위한 게임을 개발하는 경우에는 다소 다른 접근법이 필요합니다. 또한 iOS용 Unity에서 지원하는 기능은 데스크톱 PC를 위한 기능과 다소 다릅니다.

Apple 개발자 계정 설정

Apple 개발자 계정이 없어도 기기에 빌드할 수 있습니다. 테스트용으로 자기 소유 기기에만 빌드하는 경우 Apple ID만 있으면 됩니다.

하지만 계속하기 전에 Apple 개발자 계정을 설정하는 것이 좋습니다. 팀을 구성하고, 기기를 추가하고, 권한 설정 프로필을 완성하는 등 Unity를 iOS에서 최대한 활용하려면 이 계정이 필요하기 때문입니다. 이 설정은 모두 Apple 개발자 웹사이트에서 수행됩니다. 프로세스가 복잡하므로, 완수해야 하는 작업의 기본 개요가 제공됩니다. 자료는 단계별 지침과 함께 Apple iPhone 개발자 포털에서 참조할 수 있습니다.

Unity XCode 프로젝트

Unity iOS 게임을 빌드하면 XCode 프로젝트가 생성됩니다. 이 프로젝트는 게임에 서명하고 게임을 컴파일하고 배포할 수 있게 준비하는 데 필요합니다. 자세한 내용은 매뉴얼의 Unity XCode 프로젝트 페이지를 참조하십시오.

iOS 기능 액세스

Unity에서는 멀티 터치 스크린, 가속 센서, 기기 지리 확인 장치를 비롯한 여러 기능에 액세스하는 데 사용되는 여러 스크립팅 API를 제공합니다. 스크립트 클래스에 대한 자세한 내용은 iOS 스크립팅 페이지에서 확인할 수 있습니다.

스크립트에 네이티브 C, C++, Objective-C 코드 노출

Unity에서는 C, C++, Objective-C로 작성된 커스텀 네이티브 함수를 C# 스크립트에서 직접 호출할 수 있습니다. 네이티브 함수를 바인딩하는 방법에 대해 알아보려면 플러그인 페이지를 참조하십시오.

인앱 구매가 가능하도록 애플리케이션 준비

Unity iOS 런타임을 사용하여 새 콘텐츠를 다운로드할 수 있으며, 이 기능을 사용해 인앱 구매를 구현할 수 있습니다. 자세한 내용은 매뉴얼의 다운로드 가능 콘텐츠 페이지를 참조하십시오.

스플래시 화면 커스텀화

게임 실행 중에 표시되는 이미지를 변경하는 방법에 대해 알아보려면 스플래시 화면 커스텀화 페이지를 참조하십시오.

문제 해결 및 크래시 신고

iOS 기기에서 크래시가 발생하는 경우 iOS 문제 해결 페이지에서 흔히 발생하는 문제와 해결 방법의 리스트를 참조하십시오. 여기서 해결 방법을 찾을 수 없으면 크래시에 대한 버그 리포트를 접수해 주십시오(메뉴: Unity 에디터의 도움말(Help) > 버그 신고(Report A Bug)).

Unity iOS와 데스크톱 타겟의 차이점

정적 타입 JavaScript

Unity에서 iOS를 타겟으로 빌드할 때는 JavaScript의 다이내믹 타이핑이 항상 꺼져 있습니다(모든 스크립트에 자동으로 #pragma strict를 추가하는 것과 같음). 정적 타이핑은 성능을 크게 향상시키는데, 이 성능 향상은 iOS 기기에서 특히 중요합니다. 기존 Unity 프로젝트를 iOS 타겟으로 전환하는 경우 동적 타이핑을 사용하면 컴파일 오류가 발생합니다. 오류를 유발하는 변수에 명시적으로 선언된 타입을 사용하거나 타입 유추를 이용하여 이 문제를 쉽게 해결할 수 있습니다.

오디오 압축

Unity에서는 다양한 소스 포맷 사운드 파일을 임포트할 수 있습니다. 하지만 이런 파일을 임포트하면 (트래커 파일을 제외하고) 항상 빌드 타겟 포맷으로 다시 인코딩됩니다. 디폴트 포맷은 Vorbis지만, 필요한 경우 플랫폼에 따라 다른 포맷(ADPCM, MP3 등)으로 오버라이드할 수 있습니다. iPhone에서는 Mp3 재생 성능이 Vorbis 재생 성능보다 조금 더 우수합니다.

DXT 텍스처 압축 대신 PVRTC

Unity iOS는 DXT 텍스처를 지원하지 않습니다. 대신 PVRTC 텍스처 압축이 iPhone/iPad에서 기본적으로 지원됩니다. iOS의 텍스처 포맷에 대해 자세히 알아보려면 텍스처 임포트 설정 문서를 참조하십시오.

동영상 재생

iOS에서는 MovieTexture가 지원되지 않고, 대신 스크립팅 함수를 통한 전체 화면 스트리밍 재생 기능이 제공됩니다. 지원되는 파일 포맷과 스크립팅 API에 대한 자세한 내용은 매뉴얼의 동영상 페이지를 참조하십시오.

iOS
Unity iOS 기초