Як C # і UnityScript відрізняються в розвитку Unity? [зачинено]


13

Окрім очевидних мовних відмінностей, чим UnityScript і C # відрізняються при розробці ігор в Unity3D?

  • Чи помітна різниця у роботі?
  • Чи упакований код UnityScript як такий? Якщо так, чи допомагає це модифікація гри?
  • Чи можливо використовувати бібліотеки, розроблені для однієї мови, одночасно розвиваючись в іншій?
  • Чи можна змішати дві мови в одному проекті Unity; кодування одних частин у C #, а інших у UnityScript?

Існує не письмовий компонент. Але C # дозволяє отримати додаткові речі, такі як імпорт DLL. Крім цього, це "вибір". І абсолютно суб'єктивним. Не забувайте, є також Boo, в який ви можете написати свій код.
Сидар

2
Корисне запитання з об'єктивними відповідями - здається несправедливим, що його закрили.
UpTheCreek

1
Є дві основні причини, по яких це питання було закрито, і вони не пов'язані з корисністю питання або об'єктивністю відповідей. По-перше, публікація задає більше одного незв'язаного питання. По-друге, деякі із заданих питань є занадто орієнтованими на обговорення та / або два широкі, щоб відповідати написаному. Наскільки "корисним" чи популярним є питання чи наскільки хороші відповіді, незалежно від того, підходить це питання веб-сайту чи ні.

Відповіді:


12

Чи помітна різниця у роботі?

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

Чи можливо використовувати бібліотеки, розроблені для однієї мови, одночасно розвиваючись в іншій?

Так. Поки ви не забудете зберегти структуру папок, рекомендовану розробником бібліотеки, до неї можна отримати доступ з будь-якої мови. Це пов'язано з порядком компіляції Unity . Деякі функції в IDE, як-от автозаповнення, можуть не працювати для вибраної бібліотеки. (EDIT: це можна виправити, використовуючи безкоштовний плагін UnityVS для Visual Studio.)

Чи можливо змішати дві мови в одному проекті Unity, кодуючи одні частини в C #, а інші в Javascript?

Знову так. Хоча це ускладнюється швидко, оскільки ви повинні переконатися, що все складено в правильному порядку. Хоча технічно це можливо, я б рекомендував вибрати одну мову та дотримуватися її.

На якій мові доступні кращі ресурси для розробників ігор (книги, веб-сайти, форуми)?

Важко сказати. Якщо переглядати форуми, я б сказав, що у Javascript є трохи більше навчальних посібників та прикладів коду. Код, як правило, досить легко перенести на іншу мову, і оскільки бібліотеки можуть бути використані міжмовною мовою, це, швидше за все, не буде головною проблемою.


8

Перше питання, що виникають у всіх розробників Unity, - це C # або JS. Завжди йдіть із C #.

Тепер, можливо, ви думаєте: "Але я не хочу вивчати C # і я вже знаю трохи JavaScript".

Але оманливим, що вам потрібно враховувати, є те, що Unity JavaScript не є JavaScript. Це поверхневий шпон синтаксису ECMA над .NET CLR. Він не виконує жодних цікавих речей, які JavaScript робить, як анонімні вкладиші та посилання на функції так, як ви б їх нормально використовували. У нього є власні масиви, які не відповідають нормальним масивам .net, і ви зіткнетесь із безліччю підводних каменів та обмежень, яких ви могли просто уникнути, використовуючи C #. Unity JavaScript - це лише синтаксис, покритий цукеркою, створений для того, щоб .NET виглядав менш заляканим, не більше того. Це принесе вам більше шкоди, ніж користі.


7

По-перше, я б рекомендував C # over JavaScript для програмування в Unity з двох основних причин. Перша причина зводиться до сильної / слабкої різниці в наборі тексту, яку ви начебто звільнили. Я думаю, що сильне введення тексту працює краще, ніж слабке введення тексту на концептуальному рівні, але, чесно кажучи, це цілком великий аргумент у людей, і тому я зупинюся більше на конкретному практичному питанні: розгортання в iOS (і, можливо, і на інших платформах, але це саме тільки один я точно знаю) вимагає статичного набору тексту. У Unity насправді навіть є директива "#pragma strict", яка може змусити статичну друкувати в JavaScript з цієї причини, але це просто приводить мене до моєї другої причини ...

По-друге, JavaScript в Unity не зовсім такий, як JavaScript у браузері. Це створює проблеми, коли ви намагаєтесь застосувати знання з поза Unity (тобто більшість ресурсів про JavaScript) для програмування в Unity. Ось чому багато розробників Unity називають цю мову як UnityScript.


Тепер для вирішення ваших конкретних питань:

Чи помітна різниця у роботі?

Не дуже, ні ( деякі деталі )

Чи запакований код JavaScript як є? І якщо так, чи допомагає це зручність гри?

Залежить від платформи, і жодне це не дуже допомагає в зручності

Чи можливо використовувати бібліотеки, розроблені для однієї мови, одночасно розвиваючись в іншій?

Я думаю, що так (хоча мені ніколи цього не потрібно було робити, тому що всі бібліотеки, які я використовую, були запрограмовані на C #)

Чи можливо змішати дві мови в одному проекті Unity, кодуючи одні частини в C #, а інші в Javascript?

Так (хоча я намагаюся уникати цього, з міркувань послідовності)


dentedpixel.com/developer-diary/…, можливо, захоче додати це до своєї відповіді. Отримано.
Сірий

цікава посилання, додано
jhocking
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.