윈도우폰으로 유니티 포팅 시작하기


(이 문서는 http://unity3d.com/pages/windows/porting 에 있는 Getting Started on Windows Phone with Unity 문서를 한글화 한 것입니다. 원문의 업데이트에 따라서 이 문서도 업데이트 될 예정입니다.)

 

이 문서는 새로운 정보로 계속 업데이트 되며, 현재 진행 중이다. 이 문서가 해결하지 못하는 문제가 있을 경우에는 아래 윈도우폰 개발 포럼에서 찾아보길 바란다. http://forum.unity3d.com/forums/50-Windows-Development.

시작하기

유니티 4.3이 나오면서, 윈도우폰으로 게임 포팅이 훨씬 더 쉬워졌다.

이 문서는 유니티 개발자들에게 기존 유니티 게임을 윈도우폰으로 옮기는데 있어서 필요한 기본적인 정보를 준다. 이 가이드는 기술적인 세부내용을 모두 담고 있지 않지만, 어떻게 해야 하는지 필요한 참고 자료를 알려준다. 그 세부 내용은 링크를 통해 확인할 수 있다.

윈도우폰으로 유니티 포팅을 위해 필요한 것들

유니티 게임을 개발하고, 컴파일해서 윈도우폰 스토어에 제출하기 위해서 필요한 것:

  • Unity 4.3.유니티무료버전이나프로버전모두가능
    윈도우스토어나윈도우폰스토어에퍼블리싱하기위한애드온은베이직이나프로사용자모두에게무료
  • Windows Phone SDK 8.0. WP8 SDK VS Express 2013포함되어있다. – 만약 VS Pro, Premium, Ultimate 사용자라면 SDK add-in으로작동할것이고, 원하는버전을사용할있다.
  • Windows 8.0 or later. 윈도우 8 라이선스를갖고있지않으면, 90평가판을사용할있다. Mac OS X사용중이거나애플하드웨어에설치하고자한다면, 부트캠프, VMWare , 또는패러럴즈사용해서설치할있다.
    윈도우폰과함께윈도우스토어를대상으로한다면 Windows 8.1 VS2013권장한다. 이유는 Windows 8.0 Windows 8.1모두타겟할있기때문이다. 윈도우 8.0윈도우 8.1업그레이드하는것은무료이다.
  • 마이크로소프트계정. 마이크로소프트계정은개발자라이선스를얻기위해서필요하다. 마이크로소프트계정은무료이며 http://signup.live.com에서받을있다.
  • Windows Phone developer account윈도우스토어에게임을제출할필요하다. 등록과정중에앱이나게임을스토어에제출하는사람을개별혹은비즈니스로진행한다. 등록은윈도우스토어에공유된다. (한번의개발자등록으로개의스토어에모두제출할있는권한을갖게된다) 등록은개인의경우 19달러가든다.
  • Windows Phone 8 디바이스. 4.3에서윈도우폰에뮬레이터로배포하고디버깅하는것이지원되지만실제디바이스에서테스트하는것이좋다.
    폰을갖고있다면다음가이드를참고하라: 폰을개발용으로등록하고배포디버깅하기

 

 

포팅 개요

포팅을 준비하기 위해서, 다음 영역에서 윈도우폰 플랫폼에 대해 알아야 한다:

  • 디자인타임유니티에디터활용
  • 빌드타임유니티에디터로부터윈도우폰앱을생성하도록만듦
  • 타임윈도우폰앱을실행

디자인 타임 – 유니티 에디터 활용

윈도우폰으로 게임을 포팅하기 위해서, 유니티 IDE를 사용할 수 있다. 유니티 에디터에 대해서는 잘 알고 있을 것이고, 이는 생산성을 높여준다.

디자인 타임은 유니티 에디터가 모노 런타임에서 게임을 실행하기 때문에 같은 경험을 준다.

윈도우 폰 용 닷넷은 닷넷의 부분집합이다. 따라서 모노에는 있지만 닷넷에는 없는 몇몇 API들 때문에 문제가 생길 수 있다. 이런 타입 중 대부분은 닷넷과 WinRT API에 대체 할 수 있는 타입과 기능이 있다. 하지만 코드를 좀 수정해야 할 수 있다. 포팅의 세부 내용을 보려면 Windows Phone – Porting Tips 문서를 참고하길 바란다.

비주얼 스튜디오로 생성한 윈도우폰 솔루션 안에서 유니티 코드를 직접 디버깅할 수 있다는 것을 알아두길 바란다.

유니티 프로젝트에 윈도우폰 코드 추가하기

유니티 에디터 안에서만 동작하는 스크립트 파일을 포함하려면, #if (UNITY_WP8 && !UNITY_EDITOR) 전처리디렉티브를사용해서코드가에디터에서테스트할실행되지않도록해야한다. 이것은코드가실제윈도우폰내에서만동작하도록한다. !UNITY_EDITOR 는 에디터에서 실행하는 플랫폼을 File > Build Settings를 통해서 윈도우폰으로 변경했을 때 적용된다.

만약 에디터에서 실행되는 코드가 윈도우폰에서 구동되는 것도 상관 없다면, 플랫폼이 윈도우폰용 앱으로 구성되었을 때인 #if UNITY_WP8을 사용하기만 하면 된다. 에디터에서 구동되는 코드는 윈도우폰 API를 참조할 수 없다. 왜냐하면 에디터는 이 참조를 어디서 찾아야 할 지 모르기 때문이다.

윈도우폰 용 닷넷 API는 윈도우폰과 통합에 필요한 대부분의 기능들을 갖고 있다. 예를 들면 런처, 태스크, 센서 접근 등과 같은 것이며, 유니티 플러그인으로 이것들을 참조할 수도 있다. 하지만 유니티 에디터의 코드 실행을 통해 직접 접근은 가능하지 않다.

컴파일 타임 – 유니티로 윈도우폰 타겟으로 빌드

 

빌드를 하기 위해서는 File > Build Setting File 을 사용해서 타겟 플랫폼을 윈도우폰 8으로 변경해야 한다.

이렇게 하면 빌드했을 때 윈도우폰 Xaml/C# 솔루션을 생성한다. 이제 비주얼 스튜디오에서 컴파일해서 최종 패키지(XAP 파일)를 만들 수 있다.

플레이어 설정

사용자 설정 버튼을 클릭하면, 윈도우폰 앱 매니페스트 파일의 생성에 영향을 주는 윈도우폰 솔루션을 구성할 수 있다.

윈도우 폰 프로젝트와 비주얼 스튜디오 – 개발 흐름

윈도우폰으로 타겟했을 때, 위에서 언급한 몇몇 이슈들을 만날 수 있다. 유니티 섹션에서 앱을 컴파일 할때, 포팅 시에 API 관련한 이슈들을 해결하기 위해서 Windows Phone Porting Tips 을 참고할 수 있다.

컴파일 타임 에러를 해결했다면, 유니티는 비주얼 스튜디오로 컴파일, 테스트, 실행, 배포 할 수 있는 프로젝트를 생성한다:

  1. 유니티로부터플레이어와프로젝트생성
  2. 비주얼스튜디오에서컴파일해서최종바이너리와윈도우솔루션을생성

유니티 안에서 빌드할 때, 같은 폴더를 타겟할 수 있고 유니티는 비주얼 스튜디오에서 작업한 어떤 솔루션 파일 변경 사항도 겹쳐 쓰지 않는다. 유니티는 다음 폴더와 파일을 업데이트 한다.

  1. 프로젝트안의 /Data 폴더
  2. 프로젝트참조어셈블리 (프로젝트자체로부터배제되어프로젝트루트에추가)

이로 인해 비주얼 스튜디오 프로젝트를 변경할 수 있게 한다. (네이티브 기능 추가나 매니페스트와 구성 설정 파일 변경) 그리고 게임 플레이를 변경해도 비주얼 스튜디어에서 수정한 것을 유지할 수 있게 된다.


중요한 것은 유니티 안에서 어떤 수정을 하는 것은 프로젝트 파일 (예를 들면 새로운 플러그인 또는 참조)에 영향을 준다는 것이다. 향후에 이런 수정을 적용하기 위해서는 비주얼 스튜디오 프로젝트 파일을 수동으로 합쳐야 할 수도 있다.

런 타임 – 생성한 윈도우폰 앱을 실행

비주얼스튜디오에서 프로젝트를 컴파일하면 윈도우폰 앱에서 실행 시에 필요한 바이너리와 매니페스트 파일이 나온다. 지금 동작하는 바이너리가 있기는 하지만, 게임을 차별화 할 수 있는 하드웨어 및 윈도우폰 기능의 적용을 위해서 조금 더 고칠 필요가 있다. 아래 리스트는 게임을 위해서 고려할 핵심 플랫폼 기능이다.

하드웨어 차이

윈도우폰 8은 모든 디바이스가 만족해야 하는 최소 하드웨어 사양 을 갖고 있다. 이로 인해 디바이스 별로 높은 일관성을 기대할 수 있다. 여기에서는 하드웨어에 대한 모든 세부 사항을 다루지 않는다. 그러나 게임 플레이에 영향을 줄 수 있는 몇몇 요소를 살펴본다.

그래픽

프로그래밍 가능한 GPU를 이용한 하드웨어 가속. 윈도우폰은 피쳐레벨셋 9_3까지 Direct3D를 사용한다. MSDN에서 다음 표를 참고 the supported features by level 알아두어야 할 두 가지는 쉐이더 모델 레벨2 지원과 텍스쳐 최대 사이즈는 4096인 것이다.

디스플레이

윈도우폰8 디바이스는현재 4 가지해상도지원한다: 480x800(WVGA), 768x1280 (WXGA), 720x1280(720p) 그리고 1080x1920(1020p) 디바이스의 해상도를 찾으려면 Screen.width 와 Screen.height 속성을 유니티 스크립트로 쿼리 할 수 있다; 이후 게임에서 이를 활용해서 적절하게 스케일 할 수 있다. 게임 바깥의 정적 애셋(타이틀, 스플래시 이미지 등)은 WXGA 해상도를 지원하면 충분하다. 윈도우폰에서 스케일 할 것이다.

메모리(Memory)

메모리는 복수 개로 구성이 가능하다; WVGA 디바이스 용 512 메가 램, 720p 디바이스 용 최소 1기가 램. 노키아 1020과 같은 최신 폰은 최대 2기가까지. 단일 앱에서 얼마나 많은 메모리를 소비할 수 있는지는 OS 에서 제한한다. Windows Phone Porting Tips 에서 메모리를 확장하는 것과 낮은 메모리 디바이스를 지원하지 않는 방법(권장하지는 않음)을 볼 수 있다.

하드웨어 APIs

가속도계는 모든 폰에서 가능하며, 유니티 API에서 직접 접근할 수 있다. 자력계와 자이로스코프는 폰의 하드웨어에 따라서 선택적이다. 콤파스, 마이크, 위치센서, 카메라 API는 4.3에서 모두 사용 가능하다.

유니티의 윈도우폰 지원은 계속 향상되고 있고, 현재 모든 API가 포팅되지는 않았다. 몇몇 빠진 것이 있고, 아래 리스트를 참고하라. (빠진 API 모두를 포함하지는 않는다)

  • WWW구현되었으나멀티플레이어네트워킹 API빠져있다. 닷넷 API 또는서드파티라이브러리(예를들면포톤)대안으로사용할있다.
  • GPU 프로파일링은아직사용가능하지않다.

포팅을 넘어서 플랫폼과 통합

게임의 기본 포팅이 끝나면, 게임을 플랫폼의 기능으로 향상시켜서 윈도우폰 사용자를 즐겁게 할 수 있다. 게임을 금전화 하기 위해서 윈도우폰 API중의 일부를 추가하고 싶을 수도 있다. 예를 들면:

  • 라이브타일과푸시알림
  • 체험판(Trial)앱내결제(IAP) 지원을통한금전화

향후 더 많은 내용이 추가될 것임.

스토어에 제출하기

스토어에 제출하기 위해서, 윈도우폰 개발자 계정과 라이선스 버전의 유니티 제품이 필요하다. 트라이얼 버전의 유니티는 게임 우측 하단에 "development build"라는 워터마크를 보여주며, 이는 인증을 통과할 수 없다. 윈도우 스토어용 유니티 애드온은 유니티 베이직과 유니티 프로 사용자에게 무료이며, 애드온은 에디터에 포함되어 있다.

스토어에 제출할 준비가 되었을 때, 다음 스탭을 따르면 된다. 특히 #4

  1. 윈도우인증요구사항체크하라
  2. 윈도우폰결과물제출과정을알아야한다.
  3. 뒤로가기버튼의동작을적절하게처리해야한다. (다음참조 Porting tips for Windows Phone with Unity)
  4. Windows Phone Store Test Kit통해서앱을실행하라. 윈도우폰스토어테스트킷은게임을위한자동화된테스트수동테스트모음이다.
    킷을이용하면마이크로소프트테스터가심사도중에찾는문제를미리발견해서수정할있다. 따라서많은시간을절약할있다.
  5. 스토어킷은비주얼스튜디오내에서수행할수도있다. (프로젝트) this walkthrough통하면차례차례설명과킷의실행에대한세부사항을있다. 자동화된테스트를실행하고수동테스트는무시할수도있지만, 이것은좋은생각이아니다; 플랫폼에대해많은것을배울있고, 마이크로소프트인증담당자가무엇을테스트하는지확인해서게임을좋게만들있다. 수동테스트를시도해보고, 게임이어떤평가를받는지확인하라.
  6. [선택] 새로운플랫폼일있으므로, 베타로제출하는것을권장한다. 세부사항은다음을참고at the "Beta testing your app" page , on MSDN

     

  7. 마스터구성설정을제출하라. 유니티는디버그, 릴리즈그리고비주얼스튜디오프로젝트를위한마스터구성설정을생성할것이다. 릴리즈가아닌마스터를제출하도록하라.

다른 참고 자료

유니티의 Windows Phone 8: Getting Started guide 는 꼭 읽어보라.

getting started with Windows Phone 은 개발툴 다운로드, 개발용으로 폰 등록 (폰 언락) 그리고 비주얼 스튜디오 프로젝트 구조를 통해서 기본 앱을 작성하는 것을 알려준다.

이 시리즈에 있는 다른 백서와 자료:

Windows Phone SDK samples 콜렉션은 특정 작업을 수행하는 수 백가지 코딩 샘플을 갖고 있다. 모두 유용하지만 윈도우폰 SDK 팀이 올린 것들을 살펴보길 권장한다(윈도우폰 로고를 갖고 있음)

 

피드백 & 리비전 히스토리

다뤄야 할 내용이 매우 많다. 권장되는 참고 자료와 남은 시리즈를 확인하라.
알고 싶은데 빠뜨린 내용이나 더 듣고 싶은 내용은 jaimer@microsoft.com 으로 메일 주길 바란다.

Revision

Date

Changes

Contributors

1.0

11/15/2013

Seeding this conversation with a big brain dump. Sharing for comments.

Jaime Rodriguez (Microsoft),
Keith Patton (Marker Metro), the Marker Metro team.

       

Skip to main content