Unity 3D Web Player на Linux через Pipelight


Здрастуй, Хабрасообщество. Думаю, багато хто задавалися питанням, чи існує робочий порт Unity 3D Web player під Linux. На жаль, офіційно ця платформа (на даний момент) не підтримується, і веб-плагін працює тільки під Windows / Mac OS. Деякі для вирішення цієї проблеми використовували в'язку Wine + Firefox for Windows + Unity 3D WP for Windows. Однак ця зв'язка працює нестабільно, і існують проблеми з зацикленим оновленням Unity 3D WP. Сьогодні ми розглянемо більш функціональне рішення з використанням браузерів під Linux, а зробимо ми це з допомогою Pipelight.
 
 
 Що таке Pipelight?
Pipelight — це врапперов Windows NPAPI для Windows плагінів (Unity 3D WP, Silverlight, Flash і т.д.), що дозволяє використовувати ці плагіни в Натів-Linux браузерах. Pipelight складається з двох частин: Linux бібліотеки, яка подгружается браузером, і Windows програми, що стартує в Wine. Windows програма емітує Win-браузер і підвантажує Win-DLL необхідного плагіна. Коли ви відкриваєте веб-сторінку, якої потрібно цей плагін, бібліотека посилає всі запити з Linux-браузера через тунель в Windows-процес, утворюючи якийсь «міст» між браузером і плагіном. Більш детальну інформацію можна знайти тут (англ.) .
 
 Установка
Я встановлював і тестував Pipelight під Kubuntu 13.10 і Firefox 28. Відповідно, буду описувати процес під неї, але ваша система і браузер можуть відрізнятися (також підтримуються: Debian , Arch Linux , openSUSE , Fedora 18/19/20 , AVLinux , Slackware , CentOS 6 , SteamOS , Mageia 4 … і кастомниє дистрибутиви ).
 
Установка дуже проста і здійснюється всього в декілька кроків, необхідні Wine бібліотеки підтягнутися самі:
 
# Добавляем ppa репозиторий:
sudo add-apt-repository ppa:pipelight/stable
# Устанавливаем пакет:
sudo apt-get update
sudo apt-get install --install-recommends pipelight-multi
# И тут же обновляем:
sudo pipelight-plugin --update

 
Зверну вашу увагу на те, що нова версія пакету називається «pipelight-multi», а не «pipelight», який перейшов у стан deprecated.
Також через первісної спрямованості на Silverlight, Pipelight може витягнути шрифти, які захищені ліцензією Microsoft. У цьому випадку вам доведеться прийняти ліцензійну угоду. Втім, у мене воно не вимагався навіть після включення Silverlight'a.
 
Тепер, включаємо підтримку Unity:
 
sudo pipelight-plugin --enable unity3d

 
Тиснемо [Y], після цього запуститься Wine додаток, чекаємо його завантаження, перезавантажуємо браузер — все, готово!
 
Ви також можете включити інші плагіни, які підтримуються Pipelight (Silverlight або наприклад Flash, так як Linux версія відстає від Win):
 
# Silverlight
sudo pipelight-plugin --enable silverlight
# Silverlight 5.0
sudo pipelight-plugin --disable silverlight --enable silverlight5.0
# Flash
sudo pipelight-plugin --enable flash

 
 Не работает!
 Якщо установка пройшла успішно, але Unity Web додаток відмовляється вантажитися на сторінці, то, швидше за все, в нього вбудована перевірка User Agent'a, що відсікає НЕ Win / Mac OS системи.
Проблема вирішується досить просто.
 
Встановлюємо один з рекомендованих плагінів (за сумісність з іншими плагінами розробники не ручаються) для швидкої зміни юзер агента:
 
Chrome:
1. Встановлюємо плагін — chrome.google.com / webstore / detail / user-agent-switcher-for-c / djflhoibgkdhkhhcedjiklpkjnoahfmg
2. Для Unity 3D вибираємо «Safari / Mac OS X»
3. Для Silverlight — «Windows Firefox 15».
 
Firefox:
1. Встановлюємо плагін — addons.mozilla.org / en-US / firefox / addon / user-agent-overrider
2. Відкриваємо налаштування плагіна і дописуємо наступні рядки:
 
Firefox 15/Windows: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1

Safari/OSX: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10

3. Для Unity 3D вибираємо «Safari / OSX»
4. Для Silverlight — «Firefox 15/Windows».
 
 Все одно не працює!
Якщо все працювало добре, а потім раптово перестало, спробуйте очистити home папку pipelight:
 
rm -rf ~/.wine-pipelight/

 
Загляньте в офіційний FAQ (англ.) і баг трекер .
Для дистрибутивів відмінних від Ubuntu може знадобитися пересобрать спеціальні Wine пакети, подробиці — тут (англ.) .
 
 Відомі проблеми з Unity 3D WP
Pipelight підтримує більшість Unity Web додатків, проте в деяких виникають проблеми, над якими розробники працюють (за їх запевненням):
 
1. Зупинка завантаження файлу посередині. Вирішується перезавантаженням сторінки: завантаження не обривається, починається докачка решти файлу.
2. Постійно затиснута клавіша лівої стрілки (left arrow key). Вирішується або перезавантаженням сторінки, або є нерозв'язною проблемою для конкретного додатка.
3. Конкретне програма не запускається взагалі. На жаль, зустрічається з шансом приблизно 1 до 20.
 
 Висновки і P.S.
Pipelight дозволяє легко і швидко насолодитися Unity 3D Web додатками у вашому улюбленому Linux дистрибутиві.
Звичайно, це не зовсім повноцінна працездатність «як від виробника», але набагато легше по ресурсах, ніж паралельна VM машина, стабільніше ніж Wine, і набагато краще, ніж нічого :-)
 
P.S. Буду радий будь-якої конструктивної критиці щодо поста, побажанням, а також вказівок на помилки, обмовки і друкарські помилки в личку.

Джерело: Хабрахабр

0 коментарів

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