Unityって結局どの言語で書けばいいの?
どの言語だとどこまで出来て、逆に制限されるものはあるのかどうか、そして処理速度などに影響が出るのか気になったのでメモ。
Unityでは現在(v4.3)、JavaScriptとC#とBoo言語でスクリプトを書く事ができます。
Boo言語に関しては知識0なので、今回は普段使っているJavaScriptと使わないけどなんとなく分かるC#を比べてみる事にしました。
調べた結果
いきなり結論になってしまうのですが、いろいろ調べてみたら下記のような記述を見つけました。
UnityのJavaScriptは、いったんC#に変換している関係上、動的な機能にはかなり制約があります。
これはオンラインゲームを支える技術という本の著者の方(本の中のどこの部分を担当されたのかまでは知らないですが、、)が投稿している記事の中から見つけてきました。
記事自体が2011/04/09のものなので現在は違う実装になってるのかもしれないですが、UnityをJSで書く時にいちいち型を指定しないといけないのもこれが理由なら納得できる気がします。
これが本当だとすると、JavaScriptでスクリプトを書く理由というのもなさそうな感じがします。
どんなにJSで1msecを気にしたコーディングをしても結局C#になるのであれば元も子もないですね。
最終形がC#になるなら最初からC#で書いた方がフルに言語の機能を使えるはずですので、そんなに馴染みが無くてもこれを機にC#を勉強するくらいの勢いでC#だけにしぼるのもありかもしれないです。
いったん、自分はこれを機にUnityはC#で書くようにしてみようかと思います。