Version: 2018.1
iOS 개발 시작
iOS 계정 설정

Unity iOS 기초

이 섹션에서는 iOS에서 작업할 때 나타나는 가장 공통적이고 중요한 질문에 대해 설명합니다.

선행 조건

Apple로부터 iPhone 개발자 승인을 받았지만 iOS용으로 개발한 경험이 없습니다. 가장 먼저 무엇을 해야 합니까?

답변: SDK를 다운로드하고 Apple 개발자 사이트에서 작업을 시작하고 팀, 장치 및 프로비저닝을 설정해야 합니다. 시작할 때 유용한 기본 단계 리스트가 제공됩니다.

iPhone 시뮬레이터에서 Unity로 만든 게임을 실행할 수 있습니까?

답변: 아니요, 하지만 최신 SDK를 사용 중일 경우 Unity iOS는 iPad 시뮬레이터로 빌드할 수 있습니다. 하지만 시뮬레이터 자체는 iOS의 모든 입력을 시뮬레이션하거나 iPhone/iPad에서 얻은 성능을 올바르게 에뮬레이트하지 않기 때문에 Unity에 별로 유용하지 않습니다. Unity Remote 애플리케이션이 실행되는 동안 iPhone/iPad를 리모콘으로 사용하여 Unity에서 게임플레이를 직접 테스트해야 합니다. 그런 다음, 성능을 테스트하고 게임을 최적화할 준비가 되면 iOS 장치에 게시합니다.

Unity 기능

터치 스크린과 가속 센서를 사용하려면 어떻게 해야 합니까?

답변: 설치된 Unity iOS의 스크립팅 레퍼런스에는 앱을 빌드하는 데 필요한 장치 기능에 훅을 제공하는 클래스가 있습니다. 자세한 내용은 입력 페이지를 참고하십시오.

기존 파티클 시스템은 iOS에서 매우 느리게 실행되는 것 같습니다. 어떻게 해야 합니까?

답변: iOS는 비교적 낮은 필레이트(fillrate)를 가지고 있습니다. 여러 레이어로 구성된 파티클이 스크린의 상당 부분을 차지하는 경우 가장 단순한 셰이더에서도 iOS 성능이 저하됩니다. 파티클 효과를 미리 일련의 텍스처로 베이킹하는 것이 좋습니다. 그런 다음 런타임에 1–2개의 파티클을 사용하여 애니메이션 텍스처로 표시할 수 있습니다. 이런 식의 최소한의 오버드로우로 상당히 괜찮은 효과를 얻을 수 있습니다.

물리 연산이 많은 게임을 만들 수 있습니까?

답변: 물리 연산에는 많은 부동소수점 계산이 필요하므로 iOS에서 리소스가 많이 사용될 수 있습니다. 가능하면 MeshColliders를 전혀 사용하지 않는 것이 좋지만 정말 필요한 경우 사용해도 됩니다. 성능을 개선하려면 Edit->Time->Fixed Delta Time 을 사용하여 고정 프레임 속도를 낮게 설정합니다. 프레임 속도는 10–30이 권장됩니다. 낮은 물리 프레임 속도를 사용하면서 부드러운 움직임을 얻으려면 리지드바디 보간을 활성화합니다. 끊김없이 완전히 부드러운 프레임 속도를 얻으려면 iOS에서 게임이 보이는 평균 프레임 속도에 따라 고정 deltaTime 값을 선택하는 것이 좋습니다. 1:1 또는 프레임 속도의 절반이 권장됩니다. 예를 들어 30fps를 얻는 경우 15 또는 30fps(0.033 또는 0.066)를 고정 프레임 속도로 사용하는 것이 좋습니다.

Unity iOS에서 사진 앨범, 뮤직 라이브러리 또는 네이티브 iPod 플레이어에 액세스할 수 있습니까?

답변: 직접 구현하면 가능합니다. Unity iPhone은 네이티브 플러그인 시스템을 지원하며 여기서 사진 앨범, 뮤직 라이브러리, iPod 플레이어 및 iOS SDK가 노출하는 기타 기능 등 필요한 기능을 추가할 수 있습니다. Unity iOS는 Unity 스크립트를 통해 앞에 나열된 기능에 액세스하는 API를 제공하지 않습니다.

UnityGUI 고려사항

UnityGUI는 게임 성능에 얼마나 영향을 미칩니까?

답변: 컨트롤을 많이 사용하는 경우 UnityGUI는 더 많은 리소스를 소모합니다. 게임 실행 중에는 UnityGUI를 게임 메뉴나 최소한의 GUI 컨트롤에만 사용하는 것이 좋습니다 OnGUI() 호출이 포함된 스크립트가 있는 모든 오브젝트에는 OnGUI() 블록이 비어 있는 경우에도 프로세서 시간이 더 필요하다는 점을 기억해야 합니다. GUI 컨트롤을 사용하지 않는 경우 OnGUI() 호출이 있는 스크립트를 비활성화하는 것이 가장 좋습니다. 스크립트를 enabled = false로 표시하면 이렇게 할 수 있습니다.

UnityGUI 사용에 대한 팁이 더 있습니까?

답변: GUILayout을 가능한 가장 적게 사용하는 것이 좋습니다. 하나의 OnGUI() 호출에서 GUILayout을 전혀 사용하지 않는 경우 MonoBehaviour.useGUILayout = false;를 사용하여 모든 GUILayout 렌더링을 비활성화할 수 있습니다. 그러면 GUI 렌더링 성능이 두 배 향상됩니다. 마지막으로, 3D 씬을 렌더링하는 동안 GUI 요소를 되도록 적게 사용해야 합니다.


  • 2018–06–14 일부 편집 리뷰를 거쳐 페이지 수정됨
iOS 개발 시작
iOS 계정 설정