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

    Хтось може припустити, що статистичні опитування — важлива складова будь-якої діяльності, що дає розвернутися інформацію про той чи інший процесі. Але не у випадку з портированием ігор. Інформація про те, що 99% розробників асоціюють цей процес зі словом «біль», думаю, не здивує нікого. У зв'язку з цим потрібно розібратися, а як все-таки почати працювати з платформою Windows Phone в зв'язці з Unity . Розбиратися будемо на прикладі останньої версії Unity (на момент написання статті це 4.5.2) і магазинів Windows, і спробуємо зрозуміти, чи так це складно насправді.
Під хабракатом — картинки, радість, щастя і сльози просвітління.
 
 Дисклеймер : весь показаний у статті код не є зразком для наслідування, прикладом ідеального коду та інших вигаданих і не існуючих в природі речей. Практики, застосовані у статті, можуть бути одними з безлічі рішень конкретної проблеми. А можуть і не бути.
 
Для початку нам з вами, очевидно, знадобиться гра. Пара годин нескладного кодування і вимученого геймдізайн подарують нам наступний шедевр ігрової індустрії прямо з 1982 року.
 
 ДІФКУ з демонстрацією геймплея, 1.65mb
 
Гравець рухає мишею вгору-вниз, кораблик його негайно слухається, снаряди вилітають, здивовані вороги з іншої популярної гри бессплавно гинуть в пучині 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.
 
 
 
Після складання 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 і беріть участь в конкурсі ігор . Бажаємо удачі!
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.