– Unity obsługuje trzy języki skryptowe, C#, UnityScript, znany również jako JavaScript, oraz Boo. Chociaż w tym kursie będziemy używać tylko C#, zamierzam opowiedzieć trochę o różnych językach i różnicach między nimi. Wszystkie języki Unity są zorientowane obiektowo i zbierają śmieci. C# ma dużą bazę użytkowników, nawet poza Unity, co sprawia, że bardzo łatwo jest znaleźć zasoby i wsparcie. C# wymusza statyczne typowanie, co oznacza, że musisz określić typ obiektu, kiedy go deklarujesz. To może pomóc zredukować ilość błędów poprzez wyłapywanie błędów typu w czasie kompilacji zamiast w czasie runtime.
C# wspiera również pewne cechy, których UnityScript nie posiada, takie jak zdarzenia i delegaty oraz generics. Dalej, jest UnityScript. Podczas gdy rozszerzenie pliku może być .js, jest to tak naprawdę język unikalny dla Unity, zwany UnityScript. Podczas gdy ludzie mogą odnosić się do niego jako do JavaScript, jest on w rzeczywistości całkiem inny od normalnego JavaScript i te dwa nie są wymienne. Ludzie mogą woleć UnityScript od C#, ponieważ składnia jest prostsza. Na przykład, uruchamianie coroutines w UnityScript jest o wiele łatwiejsze niż w C#. UnityScript wspiera również dynamiczne typowanie, co oznacza, że nie musisz określać typu obiektu kiedy go deklarujesz, ale jak wspomniałem wcześniej może to prowadzić do błędów w czasie uruchamiania, które zostałyby wyłapane w czasie kompilacji w statycznie typowanym języku.
Na koniec mamy Boo. Boo ma składnię podobną do Pythona, którą wiele osób lubi za to, że jest bardziej czytelna dla człowieka niż inne języki. Jednak liczba osób używających Boo w Unity w porównaniu do C# czy UnityScript jest tak mała, że trudno jest znaleźć zasoby na jego temat. W Unity 5 wsparcie dla dokumentacji Boo zostanie porzucone, a pozycja menu „Create Boo Script” usunięta. Niezależnie od tego, którego języka zdecydujesz się użyć, powinieneś trzymać się jednego języka dla całego projektu. Chociaż różne języki mogą być mieszane w tym samym projekcie, nie jest to zalecane.