Unityで使う言語はC#,JavaScript,Boo(Python)の内どれが良いか?
Unityでは3種類のプログラミング言語を使用することができます。
- C#
- JavaScript(型付)
- Boo(型付Python方言)
3種類の言語を選べるのはありがたいのですが、選択肢があるからこそ、選ばなければなりません!
私は趣味でUnityを使い始めて、仕事でも2社のスマホゲーム開発に参加しました。
仕事の現場での状況も踏まえて、Unityでどの言語を選択すべきかについて考えてみます。
仕事では大抵C#が使われている
私が参加した2社のスマホゲーム開発プロジェクトでは、どちらもC#が使われていました。このほかにも面接を受けた多数の会社に使用言語を聞きましたが、皆C#でした。
なので、Unityを使った仕事をしたいのであればC#を使った方が良いと思います。
UnityのJavaScriptは独自仕様なので学びにくい
Web系のプログラマーはJavaScriptを使えるので、
「UnityのためにわざわざC#を覚えるよりもJavaScriptを使えばいい」
と思いがちですが、UnityのJavaScriptはUnity独自の言語仕様(静的型付)なので、WebのJavaScriptとは微妙に違うため却って混乱します。
違いを一つ紹介すると、WebのJavaScriptって変数の型がないですよね。こんな感じに↓
var foo = "こんにちわ";
それに対して、UnityのJavaScriptは型を指定します。
var foo:string = "こんにちわ";
変数名の後ろにコロンをつけて型を書きます。UnityのJavaScriptはJavaScriptをC#っぽく改変したものなので、WebのJavaScriptを知ってる人には少し違和感が感じられます。
学習用の資料もUnity用JavaScriptのものに限られてしまいます。
それに比べてC#はMicrosoftの.NETのものと基本的に同じなので、学習用のWebサイトや書籍もたくさんあります。
Boo(Python系方言)はなくなる?
Unityの言語使用比率は、
- C# 約80%
- JavaScript 約20%
- Boo 0.数%
だそうです。
「Booってほとんど使われてないじゃん!?」なのです。
Unity5からはスクリプトリファレンスや新規作成から、Booがなくなりました。
今のところ、拡張子が.booのファイルを作れば実行できるようですが、いずれ完全にサポートがなくなるかもしれないので使わない方が無難かと思います。
C#がおすすめ
C#はJavaに似ていますが、Javaよりも簡潔な記述ができる構文が用意されていて、コードを書くのが楽しい言語です。
どれを使うか迷っているようでしたら、ぜひC#を使ってみてください!