JavaScript Quirks

From Unify Community Wiki
(Redirected from Javascript quirks)
Jump to: navigation, search
This page is marked for deletion

End of support for UnityScript

Starting with Unity 2018.2, support for UnityScript (Unity's version of JavaScript) has ended. C# is now the only supported language going forward. You can learn more about the reasons for this change here. There is an official UnityScript-to-C# Automatic Conversion tool to help those wanting to transition their UnityScript projects over to C#.

  • Only Monobehaviours can use print(). This means that if you're using a custom class and need to debug it, you need to use Debug.Log(str) instead. This will work both inside MonoBehaviours and non-MonoBehaviours alike.
  • If a class inherits from another class, and an instance is explicitly declared as the parent class, it will always call the parent's function - even if the child overrides it! The workaround is to make the instance a typeless variable. (The easiest way is to define the type as object: var variable_name : object;)
This problem will disappear when Unity's JavaScript implements equivalents to the new, override and virtual method qualifiers in C#.
  • Unity JavaScript uses static typing but avoids having to define the types by using type inference where it can and reverts to dynamic typing (or duck typing) where the inference doesn't work.
Personal tools