プログラミング

Unityで使うプログラミング言語を徹底解説

ゲーム開発に興味を持ち、「Unity」を調べ始めると、最初にぶつかる疑問があります。

「Unityって、どのプログラミング言語を使うの?」

個人的にUnityでの開発に携わってきた経験から言えることですが、この疑問への答えはシンプルなようで、実は奥が深いものです。結論から言えば、Unityの主要プログラミング言語はC#(シーシャープ)です。しかし、なぜC#なのか、他の言語は使えないのか、初心者はどこから始めるべきなのかを理解しておくと、学習効率が大きく変わります。

この記事で学べること

  • UnityがC#を公式言語として採用している理由と歴史的背景
  • かつてサポートされていたUnityScript(JavaScript風言語)が廃止された経緯
  • C#未経験者がUnity開発を始めるための具体的な学習ステップ
  • Visual Scripting(ノーコード)を使えばコードを書かずにゲームが作れる
  • Unity×C#の組み合わせが就職・転職市場で高い需要を持つ現実

UnityのプログラミングにはC#が使われている

Unityでゲームやアプリを開発する際に使用するプログラミング言語は、現在はC#(シーシャープ)一択です。

C#はMicrosoft(マイクロソフト)が開発したプログラミング言語で、Javaに似た文法構造を持ちながらも、より洗練された書き方ができるのが特徴です。簡単に言えば、「読みやすく、書きやすく、かつ高機能」な言語と考えてください。

Unityの公式ドキュメントやチュートリアルもすべてC#で書かれており、Unity Asset Store(アセットストア)で配布されているスクリプトもC#が標準です。つまり、Unityを学ぶ=C#を学ぶ、という関係が成り立ちます。

C#がUnityに採用された理由

なぜUnityはC#を選んだのでしょうか。いくつかの技術的・実用的な理由があります。

まず、C#は型安全性(かたあんぜんせい)が高い言語です。型安全性とは、プログラムの中で「数値」と「文字」を間違えて使うようなミスを、実行前に検出できる仕組みのことです。これにより、ゲーム開発中のバグを早期に発見できます。

次に、C#はオブジェクト指向プログラミングに対応しています。ゲーム開発では「キャラクター」「アイテム」「敵」といったオブジェクト(モノ)を個別に管理する必要があるため、オブジェクト指向の考え方と非常に相性が良いのです。

さらに、C#はMicrosoftの強力なサポートを受けて進化し続けている言語です。定期的に新機能が追加され、パフォーマンスも年々向上しています。

C#
Unity公式言語

2005年〜
C#サポート開始

100万+
月間アクティブ開発者

かつて使えた言語とその廃止の歴史

UnityのプログラミングにはC#が使われている - unity 言語
UnityのプログラミングにはC#が使われている – unity 言語

実は、Unityでは以前C#以外の言語もサポートされていました。この歴史を知っておくと、古い情報に惑わされずに済みます。

UnityScript(JavaScript風言語)の廃止

Unityの初期バージョンでは、UnityScriptと呼ばれるJavaScript風の言語が使えました。「JavaScript風」と表現したのは、Webブラウザで使うJavaScriptとは似て非なるもので、Unity独自の拡張が加えられた別物だったからです。

UnityScriptは文法がシンプルで初心者に人気がありましたが、2017年にUnity Technologies社が廃止を発表し、Unity 2018.2以降は新規作成ができなくなりました。

廃止の主な理由は以下の通りです。

  • C#に比べてパフォーマンス(処理速度)が劣っていた
  • Unity独自言語のため、他の開発環境で知識が活かせなかった
  • 2つの言語をサポートし続けるコストが大きかった
  • コミュニティの大多数がすでにC#に移行していた

Booの廃止

さらに古い時代には、Boo(ブー)というPython風の言語もサポートされていました。こちらはUnity 5(2015年)の時点ですでに廃止されています。利用者が極めて少なかったことが主な理由です。

⚠️
注意事項
ネット上には「UnityはJavaScriptで開発できる」という古い情報が残っています。現在のUnityではUnityScriptは完全に廃止されているため、新しく学習を始める方はC#一択で問題ありません。古い書籍やチュートリアルを参考にする際はご注意ください。

C#を知らなくても大丈夫なVisual Scripting

かつて使えた言語とその廃止の歴史 - unity 言語
かつて使えた言語とその廃止の歴史 – unity 言語

「プログラミング言語を覚えるのはハードルが高い…」と感じる方に朗報です。

Unity 2021.1以降、Visual Scripting(ビジュアルスクリプティング)という機能が標準搭載されています。これは、コードを一行も書かずに、ブロックをつなげるような感覚でゲームのロジックを組み立てられるツールです。

プログラミング未経験でもゲーム開発を始められる環境が、すでにUnityには用意されています。

ただし、経験上、Visual Scriptingには限界もあります。

Visual Scriptingのメリット

  • コードを書かずにゲームロジックを構築できる
  • 視覚的に処理の流れを確認しやすい
  • プロトタイプ(試作品)の作成が高速
  • デザイナーやアーティストでも扱える

Visual Scriptingのデメリット

  • 複雑な処理になるとノードが膨大になり管理が困難
  • C#スクリプトに比べて処理速度が若干遅い
  • チーム開発ではC#が主流のため連携しにくい
  • 求人市場ではC#スキルが求められる

個人的には、Visual Scriptingは「プログラミングの考え方」を学ぶ入口として非常に優れていると感じています。まずはVisual Scriptingで変数やループ、条件分岐の概念を体感し、その後C#に移行するというステップを踏むと、挫折しにくいです。

Unity開発に必要なC#の知識レベル

C#を知らなくても大丈夫なVisual Scripting - unity 言語
C#を知らなくても大丈夫なVisual Scripting – unity 言語

「C#を完璧にマスターしないとUnityは使えないのでは?」と心配される方が多いのですが、実はC#の全機能のうち、Unity開発で日常的に使うのは一部です。

最低限必要な基礎知識

Unity開発を始めるために、まず押さえるべきC#の基礎は以下の通りです。

Unity開発に必要なC#基礎チェックリスト







Unity特有のC#の使い方

C#の基礎文法に加えて、Unity独自のルールがいくつかあります。

代表的なのがStart()Update()という2つのメソッドです。Start()はゲーム開始時に一度だけ実行され、Update()は毎フレーム(1秒間に30〜60回程度)繰り返し実行されます。この仕組みを理解するだけで、キャラクターの移動や当たり判定など、ゲームの基本的な動作を作れるようになります。

💡 実体験から学んだこと
Unity開発を始めた頃、C#の教科書を最初から最後まで読もうとして挫折しかけました。実際には、Unity公式チュートリアルの「Roll a Ball」(ボールを転がすゲーム)を作りながら必要な文法を覚えていく方が、はるかに効率的でした。完璧を目指すよりも、まず動くものを作ることが大切です。

初心者がUnity×C#を学ぶための具体的ステップ

これまでの経験を踏まえて、効率的な学習順序をご紹介します。

1

Unity Hubをインストール

公式サイトからUnity Hubをダウンロードし、最新のLTS(長期サポート)バージョンをインストールします。個人利用は無料です。

2

Unity Learn公式チュートリアル

Unity Learnサイトの初心者向けパスウェイを進めます。C#の基礎もゲーム作りの中で自然に学べます。

3

小さなゲームを完成させる

シンプルな2Dゲームを一本完成させましょう。「完成」の経験が次のモチベーションにつながります。

プログラミングの独学全般に言えることですが、最も重要なのは「手を動かすこと」です。C#の文法書を読むだけでは身につきません。

学習に使うエディタ(コードを書くツール)としては、Visual StudioまたはVisual Studio Codeがおすすめです。Unityとの連携機能が充実しており、コードの自動補完やエラー検出が使えるため、初心者でも効率よく開発できます。

通常、C#の基礎を理解してシンプルなゲームを作れるようになるまで、1〜3ヶ月程度を見込んでおくとよいでしょう。

UnityとC#以外の選択肢も知っておこう

Unity×C#が最も一般的な組み合わせですが、ゲーム開発エンジンは他にも存在します。自分に合った環境を選ぶために、簡単に比較しておきましょう。

📊

主要ゲームエンジンと使用言語の比較

Unity(C#)

シェア最大

Unreal Engine(C++)

AAA向け

Godot(GDScript)

成長中

Unreal EngineはC++を使用し、グラフィックの美しさでは業界トップクラスです。ただし、C++はC#よりも学習難易度が高く、初心者には敷居が高い面があります。

Godot(ゴドー)はオープンソースのゲームエンジンで、GDScriptというPython風の独自言語を使います。軽量で学びやすいですが、Unityほどの情報量やアセット(素材)はまだありません。

初心者がゲーム開発を始めるなら、情報量の豊富さ・コミュニティの大きさ・就職市場での需要を総合的に考えると、Unity×C#が最もバランスの良い選択です。

プログラミングゲームを通じてプログラミングの基礎を身につけてからUnityに挑戦するのも、効果的なアプローチです。

💡 実体験から学んだこと
最初はUnreal Engineの美しいグラフィックに惹かれてC++を学ぼうとしましたが、メモリ管理の複雑さに挫折しました。UnityのC#に切り替えたところ、2週間で最初のミニゲームが動き、そこからモチベーションが一気に上がりました。まずは「動くものを作れる」環境を選ぶことが、継続の鍵だと実感しています。

Unity×C#のキャリアと将来性

Unity×C#のスキルは、ゲーム業界だけでなく幅広い分野で活用されています。

ゲーム開発はもちろんのこと、VR/AR(仮想現実・拡張現実)アプリケーション、建築ビジュアライゼーション自動車業界のシミュレーション医療トレーニングなど、Unityの活用領域は年々拡大しています。

C#自体もUnity以外の場面で広く使われている言語です。Webアプリケーション開発(ASP.NET)、デスクトップアプリ開発、クラウドサービス(Azure)など、コーディングスキルとして汎用性が高いのが魅力です。

つまり、Unityをきっかけに学んだC#は、将来的にゲーム開発以外のキャリアにも活かせる資産になります。

プログラミング教室の中にもUnity×C#に特化したコースを提供しているところがあるので、独学が難しいと感じた場合は検討してみてください。

よくある質問

UnityでPythonは使えますか

Unity本体のスクリプティングにPythonは公式サポートされていません。ただし、「Python for Unity」というパッケージを使えば、エディタ拡張(開発ツール側のカスタマイズ)に限定してPythonを利用できます。ゲームのロジック(キャラクターの動きなど)を書く言語としてはC#のみです。Pythonでできることは多いですが、Unity開発においてはC#が必須と考えてください。

C#を全く知らない初心者でもUnityを始められますか

はい、始められます。Unity公式のVisual Scripting機能を使えば、コードを書かずにゲームのロジックを組み立てられます。また、Unity Learnという公式学習サイトでは、C#の基礎からゲーム制作までをステップバイステップで学べる無料コースが用意されています。最初の1〜2週間はVisual Scriptingで概念を掴み、その後C#に移行するのがスムーズです。

UnityのC#と通常のC#に違いはありますか

基本的な文法は同じです。ただし、UnityではMonoBehaviourというUnity独自の基底クラスを継承してスクリプトを書くのが一般的で、Start()やUpdate()などUnity固有のライフサイクルメソッドを使います。また、Vector3(3D座標)やQuaternion(回転)などのUnity専用の型も頻繁に使用します。C#の基礎を学んだ上で、Unity特有の部分を追加で覚えるイメージです。

UnityとUnreal Engineのどちらを選ぶべきですか

目的によります。2Dゲーム、モバイルゲーム、インディーゲーム開発、VR/ARアプリならUnity×C#が適しています。ハイエンドな3Dグラフィックを追求するAAAタイトルを目指すならUnreal Engine×C++が強みを発揮します。プログラミング初心者の場合、C#の方がC++より学習しやすいため、まずUnityから始めることをおすすめします。

Unity開発に必要なパソコンのスペックはどのくらいですか

最低限の目安として、CPU:Intel Core i5相当以上、メモリ:8GB以上(推奨16GB)、GPU:DirectX 11対応のグラフィックカード、ストレージ:SSD推奨で空き容量20GB以上が必要です。3D開発を本格的に行う場合は、Core i7クラスのCPUと16GB以上のメモリがあると快適です。PCのメモリ確認方法を事前にチェックしておくとよいでしょう。