Новости

Про портирование Unity-ігор на Windows Phone

Хтось може припустити, що статистичні опитування - важлива складова будь-якої діяльності, що дає розгорнуту інформацію про той чи інший процесі. Але не у випадку з портированием ігор. Інформація про те, що 99% розробників асоціюють цей процес зі словом «біль», думаю, не здивує нікого. У зв'язку з цим потрібно розібратися, а як все-таки почати працювати з платформою Windows Phone в зв'язці з Unity . Розбиратися будемо на прикладі останньої версії Unity (на момент написання статті це 4.5.2) і магазинів Windows, і спробуємо зрозуміти, так це складно насправді.

Повідомлення: весь показаний в статті код не є зразком для наслідування, прикладом ідеального коду та інших вигаданих і не існуючих в природі речей. Практики, застосовані в статті, можуть бути одними з безлічі рішень конкретної проблеми. А можуть і не бути.

Для початку нам з вами, очевидно, знадобиться гра. Пара годин нескладного кодування і вимученої геймдізайн подарують нам наступний шедевр ігрової індустрії прямо з 1982 року.

збільшити
збільшити

Гравець рухає мишею вгору-вниз, кораблик його негайно слухається, снаряди вилітають, здивовані вороги з іншої популярної гри безславно гинуть в безодні Destroy (gameObject). Загалом, все просто.
Тут починається причина болю номер один - підтримка всіх можливих дозволів екранів. У нашому випадку на допомогу приходить простий скрипт, який ми використовуємо для головної камери в процесі розробки. Скрипт змінює розмір game view так, щоб він (розмір) відповідав співвідношенню сторін використовуваного екрану.
Скрипт на pastebin
Для збірки Unity-гри під Windows Phone або Windows 8 (з подальшою публікацією в Store) потрібні Windows Phone SDK 8.0 (Який включає в себе безкоштовний VS2013 Express), Windows 8 або вище (є пробна 90-денна версія ), Обліковий запис Microsoft ( тиц ), Обліковий запис розробника (студенти можуть отримати її безкоштовно за програмою DreamSpark ) І, очевидно, пристрій на потрібній платформі. Unity, згідно Офіційний документації підтримує емулятори, але працює в них не дуже добре.
Обробка введення
У випадку з мишею нам практично не потрібно робити додаткових доробок коду - обробка натискань і переміщень миші буде достатньою умовою для того, щоб це все працювало для touch-екранів мобільних пристроїв без зайвого шаманства.
Тобто, Input.mousePosition.x буде повертати місце, де зараз знаходиться миша в разі версій для комп'ютера, і координати торкання (будь-якого) в разі влаштування з тачскріном. Аналогічно і з іншими методами. Якщо ви розробляєте гру відразу під тач-інтерфейс або хочете обробити якісь специфічні жести, то на допомогу вам прийде Input.Touch .
Крім того, якщо ви хочете, наприклад, виводити цільові повідомлення користувачам певної платформи, можна використовувати такі конструкції:
#if UNITY_EDITOR
// код, виконуваний тільки в редакторі unity.
Debug.Log ( «Unity Editor»);
#endif
Для Windows Phone 8 ця директива може виглядати так:
#if (UNITY_WP8 &&! UNITY_EDITOR) або просто # UNITY_WP8
докладний список директив і парочку прикладів можна подивитися в офіційній документації Unity.
Щоб зібрати гру, вам потрібно вибрати цільову платформу Windows Phone 8 в меню File - Build Settings.
Гравець рухає мишею вгору-вниз, кораблик його негайно слухається, снаряди вилітають, здивовані вороги з іншої популярної гри безславно гинуть в безодні Destroy (gameObject)
збільшити

Після складання Unity згенерує проект Windows Phone Xaml / C #, який потрібно буде скомпілювати в Visual Studio для отримання фінального пакета (XAP) і файлу-маніфесту, які потрібні для безпосереднього запуску гри під Windows Phone. Налагоджувальний запуск проекту через Visual Studio на реальному пристрої виглядає ось так:

З одного боку, це все що необхідно. З іншого боку, грі може знадобитися оптимізація для відповідності мобільному «заліза». В цілому, у апаратної частини пристроїв Windows Phone високий ступінь сумісності (додаток, запускається на одному телефоні, без проблем запуститься і на іншому), але зупинимося на основних моментах, які доведеться мати на увазі.
З одного боку, це все що необхідно
збільшити

графіка
Апаратне прискорення з програмованим GPU і підтримкою Direct3D.
дисплей
На даний момент підтримуються 4 дозволу екрану: 480х800 (WVGA), 768x1280 (WXGA), 720x1280 (720p) і 1080x1920 (1080p). Для визначення розмірів екрану можна звернутися до Screen.width і Screen.height прямо з Unity. Для картинок поза грою (splash-screen, плиток) досить підтримувати дозвіл WXGA.
пам'ять
Можливі кілька конфігурацій пам'яті: 512 мегабайт для пристроїв з WVGA і як мінімум 1 гігабайт для пристроїв з роздільною здатністю 720p. На найсвіжіших моделях розмір пам'яті може досягати двох гігабайт.
апаратні API
Акселерометр встановлений на всіх телефонах з Windows Phone і доступний прямо з Unity, наявність доступу до гіроскопа залежить від його присутності в телефоні. API для компаса, мікрофона, камери і місця розташування доступні в Unity з версії 4.3
Для інтеграції з платформою можна додати в вашу гру підтримку живих плиток і Push-повідомлень, а також монетизацію (пробну версію гри або внутрішньоігрові покупки)
Перед відправкою гри в магазин переконайтеся, що у вас є обліковий запис розробника Windows Phone і ліцензійна версія Unity. Якщо це дійсно так, то швидше за збирайте свою власну гру, відправляйте її в магазин Windows Phone

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: