В юнити нет JS. Скопирую и дополню свой ответ с другого ресурса.
Мне как джаваскриптизеру с десятилетним стажем проще было писать на C#, чем на этом якобы JS. И вот почему:
- Никаких встроенных в JS объектов, функций и API там нет. У массивов, строк и объектов другие свойства и методы. Прокидываются вещи из рантайма юнити, надо искать, что и где. Невозможно взять библиотеку с npm и использовать её в Unity3D. Кроме самых примитивных примеров, типа
var a = 2 + 2
, код из учебников по JS не будет работать в Unity3D.
- Некоторые, казалось бы, очень простые и очевидные, синтаксические конструкции тупо не работают.
- Классы не похожи ни на ES6, ни на TypeScript, ни на CoffeeScript
- Явное указание типов вроде не обязательно, но иногда компилятор в самый неожиданный момент не может вывести тип автоматически и надо идти и прописывать. Опять таки декларация типов не совсем такая, как в TypeScript или ActionScript, а как описать сложные типы не всегда очевидно.
- Нет нормального редактора (MonoDevelop таким не является), который бы поддерживал этот синтаксис, подсвечивал ошибки, давал навигацию и так далее (я уж молчу про linting и рефакторинг).
В общем, нельзя просто взять и начать писать на UnityScript. Может быть, если JS (или ActionScript) у вас первый и единственный язык, это проще, чем, скажем, учить C# с нуля, но и то не факт, ибо по шарпу дофигалиард учебных материалов.