it Новини 7 мов, на яких можна писати в Unity
7 мов, на яких можна писати в Unity

7 мов, на яких можна писати в Unity

101 079
01 червня 2019 в 18:15

Ті, хто знайомий з Unity, знають, що написання скриптів відбувається за допомогою мови C#. Насправді мов набагато більше, і в статті ми розповімо вам про це.

Двигун підтримує кілька популярних мов програмування, тож вам не доведеться вчити нову мову з нуля. Потрібно лише обрати одну з мов, якими вже володієте, «прокачати» її і можна починати експериментувати. Причому справа не зводиться лише до C#, нормально працювати з Unity можна і з використанням JavaScript, Python та ряду інших мов, на цьому сьогодні зупинимося детальніше.


C#

Якщо володієте цією мовою програмування, то зможете використовувати потенціал Unity на 100%. По суті, всі бібліотеки Unity написані саме на C#. В Unity використовується Mono – open-source проєкт, який є однією з варіацій Microsoft. NET.



C# – досить проста у вивченні мова, до того ж вам не потрібно знати її досконало. Для роботи з Unity достатньо базових навичок. Її синтаксис схожий з C++, Java, тож якщо володієте однією з цих мов, то освоїти C# буде ще простіше.


В Unity у ролі основної може бути кілька мов. Багато залежить від команди розробників, їхніх цілей.


Boo

Мова випущена у 2011 р., автор – Родріго де Олівейра, ця ж людина в минулому активно працювала над Unity. Синтаксис Boo – дещо середнє між IronPython і CPython, через налаштування компілятора його можна зробити динамічно-типізованим, хоча за замовчуванням він таким не є.


Мова проста і зручна, синтаксис не перевантажений складними конструкціями. В Unity вона підтримувалася доти, доки над платформою працював її автор. Як тільки Олівейра пішов з команди, підтримка Boo була припинена.



Причина проста – мова непопулярна і немає сенсу витрачати ресурси на її подальшу підтримку. Вона не може залучити нових розробників у Unity, не дає жодних переваг порівняно з іншими мовами і просто не окупає зусиль, витрачених на її підтримку в платформі.


JavaScript

JS поряд із C# був базовою мовою в Unity. У платформі використовувався UnityScript, ця мова дещо відрізняється від класичного JS. US правильніше було б назвати спеціальною версією JavaScript: синтаксис схожий, але відмінностей достатньо. Наприклад, у US відсутня можливість переназначення змінних, не можна використовувати необов’язкові крапки з комою.



До недавнього часу коди скриптів надавалися як на C#, так і на UnityScript. Але останнім часом від US команда Unity відмовляється. Причому не просто припинили його підтримувати, а активно переводять усі скрипти на C# і в майбутньому UnitySript буде повністю викорінений. З середини 2017 р. авторам скриптів розсилається попередження про необхідність переведення коду на C#. Тож, якщо зібралися вивчати цю мову, краще залиште цю ідею.


Обійти це обмеження можна через компілятор на GitHub, спеціально обмежувати використання JS в Unity ніхто не збирається. Але працювати з таким «костилем» все ж не так зручно.


Lua

Lua – досить специфічна мова з однотипним синтаксисом, широко використовується розробниками ігор. Саме на Lua створено більшу частину модів для World of Warcraft. В інших проєктах ця мова часто використовується для написання AI.


Що стосується Unity, то в платформі використовується спеціальний інтерпретатор MoonSharp, щоб можна було підключити сторонній код, написаний на Lua. MoonSharp не варто розглядати як заміну C#.


IronPython і IronRuby

Обидві мови – результат реалізації Python і Ruby відповідно на платформі .NET. Щоб використовувати їх у Unity, доведеться трохи повозитися з підключенням потрібних бібліотек, їх можна знайти на GitHub. Усі матеріали у вільному доступі.



Після підключення обох мов можна буде викликати скрипти, написані на них, прямо з C# коду. Бонусом отримаємо можливість виклику .NET бібліотек з Python.


Rust

Якщо порівнювати швидкість і технічні можливості, то Rust співставний із C++, мова не має проблем із безпекою, швидкістю та паралелізмом. У минулому її називали непоганим варіантом для розробки ядер ОС.


У середньому 1.0-1.5% програмістів регулярно використовують Rust, пік популярності ще попереду, тому не варто звертати увагу на настільки незначний відсоток. Функції та методи можна викликати з коду Unity, але напряму писати їх не вийде. Тим не менш, і такий рівень підтримки Rust варто відзначити.


C/C++

Використання цих мов стало звичною практикою для проєктів, у яких важлива швидкість і надійність роботи. Це універсальні мови, використовуються не лише у розробці ігор, але й у розробці операційних систем, прикладного ПЗ – варіантів застосування безліч. В Unity підтримка цих мов реалізована «з коробки», тобто можна одразу переходити до створення плагінів.



Новачкам у геймдизайні рекомендуємо ці мови опановувати на старті навчання. Вони прості, а знання, якими оволодієте на початку, знадобляться у майбутньому.


Заключення

Якщо зібралися працювати в Unity, то доведеться освоїти C#, ігнорувати цю мову не вийде. Зациклюватися лише на ній не обов’язково, платформа підтримує різноманітні мови програмування, тож кожен знайде варіант собі до душі. Винятком є хіба що JavaScript. Від нього команда Unity вирішила відмовитися і в майбутньому US навряд чи повернеться, тож його для роботи з Unity вивчати не варто. В іншому обмежень немає, працювати можна з будь-якою з перелічених мов.

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

Більше цікавих новин

Коментарі
Додати коментар

Поки що коментарів немає