유니티 iOS 기초 Unity iOS Basics

이 섹션은 iOS로 작업할 때 생길 수 있는 가장 빈번히 일어나면서도 중요한 질문들을 다루고 있습니다.

필요사항 Prerequisites

저는 애플로 부터 iPhone 개발자 승인을 받았습니다. 그러나 나는 이전에 iOS로 개발해 본 적이 없습니다. 먼저 무엇을 해야 합니까?

_A_: SDK를 다운로드하고 애플 개발자 사이트를 활용하며 사용자의 팀, 기기, 그리고 규정, 조항들을 준비를 끝냅니다. 시작하기 위한 기본적인 절차들을 여기서 읽어보시기 바랍니다.

유니티로 만들어진 게임이 iPhone 시뮬레이터에서 실행됩니까?

_A_: 안됩니다. 하지만 사용자가 만약 가장 최신의 SDK를 사용하고 있다면 Unity iOS를 iPad 시뮬레이터에 빌드할 수 있습니다. 그러나 시뮬레이터 그 자체로는 그것이 iOS로부터의 모든 입력값 input 을 시뮬레이션하지 않고 사용자가 iPhone/iPad에서 내는 만틈의 성능을 제대로 에뮬레이트 emulate 하지를 못하기 때문에 유니티에는 큰 도움이 되지 않습니다. 사용자는 그것이 아이폰이나 아이패드가 유니티 리모트 Unity Remote 어플리케이션을 실행시키는 동안에 아이폰/아이패드를 리모트 컨트롤로 사용해서 유니티 내부에서 직접적으로 게임 플레이를 테스트 해봐야 합니다. 그 후에 사용자가 성능을 테스트하고 게임을 최적화했을 때 사용자는 iOS 기기로 퍼블리쉬합니다.

유니티 기능들 Unity Features

터치스크린과 가속도계 accelerometer 와는 어떻게 작업합니까?

_A_: 사용자는 사용자의 앱을 빌드하기 위해 필요한 기기의 기능들로 연결해주는 클래스들을 사용자의 유니티 iOS 설치 부분의 스크립팅 레퍼런스에서 찾을 것입니다. 더 많은 정보를 위해서는 Input System page를 참고하시기 바랍니다.

제 현재 파티클 시스템은 iOS에서 매우 느리게 실행하는 것처럼 보입니다. 어떻게 해야 합니까?

_A_: iOS는 상대적으로 낮은 필레이트 fillrate 를 가집니다. 만약 사용자의 파티클이 복수의 레이어와 함께 씬의 많은 부분을 차지한다면 가장 단순한 셰이더를 사용한다해도 iOS 성능을 확 떨어뜨릴 것입니다. 우리는 사용자가 오프라인으로 일련의 텍스쳐들 안에 파티클 이펙트를 굽는 것을 추천합니다. 그리고 실행시에 1-2개의 파티클 정도만 사용하여 움직이는 텍스쳐 animated texture 들을 통해 보여줄 수 있습니다. 사용자는 이 방법을 이용하여 최소한의 오버드로우 overdraw 로 충분히 괜찮은 효과를 낼 수 있습니다.

물리 physics 를 많이 사용하는 게임도 만들 수 있을까요?

_A_: 물리는 많은 양의 부동 소수점 수치처리 floating point number crunching 를 필요로 하기 때문에 iOS에서 비용이 많이 듭니다. 사용자는 가능한한 MeshColliders를 최대한 피하는 것이 좋지만 그들이 정말로 필요하면 사용할 수도 있습니다. 성능을 향상하기 위해서 Edit→Time→Fixed Delta Time을 사용해서 낮은 고정 프레임 속도 fixed frame rate 를 사용하세요. 10-30의 프레임 속도를 권장합니다. 낮은 물리적인 프레임 속도를 사용하는 동안에는 매끄러운 움직임을 만들기 위해서 강체 보간 rigidbody interpolation 을 활성화 하세요. 진동 없이 완전히 유연한 프레임 속도를 얻으려면 사용자의 게임이 iOS 에서 얻는 평균적인 프레임 속도에 기반해서, 고정된 deltaTime 값을 설정하는 것이 가장 좋습니다. 1:1 또는 프레임 속도의 절반이 권장됩니다. 예를 들어 사용자가 30 fps의 속도를 얻고 있다면 사용자는 고정 프레임 속도를 15 또는 30 fps (0.033 또는 0.066)를 사용하는 것이 좋습니다.

제가 유니티 iOS에서 갤러리, 음악 라이브러리 또는 네이티브 iPod 플레이어에 접근할 수 있나요?

_A_: 예 – 사용자가 그것을 구현한다면 가능합니다. 유니티 iPhone은 갤러리, 음악 라이브러리, iPod 플레이어 등등 iOS SDK에서 보여지는 모든 기능들로의 접근을 포함해서 사용자가 필요해 하는 모든 특성을 추가할 수 있는 네이티브 플러그인 시스템을 지원합니다. 유니티 iOS는 유니티 스크립트를 통해서 언급된 기능들에 접근하기 위한 API를 제공하지는 않습니다.

유니티GUI에서 고려할 점 UnityGUI Considerations

유니티GUI는 저의 게임에 어느 만큼의 성능적인 효과를 줄 수 있습니까?

_A_: 유니티GUI는 많은 컨트롤을 사용할수록 꽤 비용이 들게 됩니다. 사용자의 게임이 실행되는 동안에는 유니티GUI의 사용을 게임 메뉴나 아주 최소의 GUI 컨트롤로 제한하는 것이 가장 이상적입니다. OnGUI()() 호출을 내포하는 스크립트를 가진 모든 오브젝트는 추가적인 프로세서 시간을 필요로 한다는 것을 알고 있어야 합니다 – 설사 그것이 빈 OnGUI() 블록이라도 말입니다. 만약 GUI 컨트롤이 사용되지 않고 있다면 OnGUI() 호출을 가지는 모든 스크립트들을 비활성화 시키는 것이 최상입니다. 이것은 스크립트에서 enabled = false로 표시함으로써 할 수 있습니다..

유니티GUI을 사용하는 것에 대한 다른 팁은? Any other tips for using UnityGUI?

_A_: 가능하면 GUILayout을 적게 사용하도록 하십시오. 사용자가 하나의 OnGUI() 콜에서 GUILayout을 하나도 사용하고 있지 않다면, 사용자는 MonoBehaviour.useGUILayout = false;을 사용해서 모든GUILayout 렌더링을 비할성화 시킬 수 있습니다. 이것은 GUI 렌더링 성능을 두배로 올려줍니다. 마지막으로 3D 씬을 렌더링하는 동안에는 가능한 적은 수의 GUI 요소들을 사용하세요.

연결문서