Unity C#のコンパイルエラーの種類と対処法について

コンパイルエラーの解説の画像 Unity C#入門講座
コンパイルエラーが発生した時はファイルパスとその中の行、列番号とエラー番号、詳細な内容が表示される。


Unityの本格ゲーム制作講座はこちら
【30日間の全額返金保証付き】

前回ははじめてのUnity C#プログラミングに挑戦しましたね。

前回の記事↓

Unity C#スクリプトの構造 スクリプトの作成と実行方法
前回はUnityとC#について簡単に解説しました。 前回の記事↓ 今回の記事ではいよいよ実際にUnity上ではじめてのプログラミングに挑戦です! Unity C#スクリプトを作成・実行していきましょう! C#スクリプトを作成して...

プログラミングではコンパイルエラーが付き物です。

コンパイルエラーはスクリプトの書き方が間違っていることを私たちに教えてくれる機能となります。コンパイルエラーが発生しても、慌てず対処法を覚えることでスムーズにプログラミングしていくことができるようになります。

この記事の最後には初心者が起こしやすいコンパイルエラーとその対処法についていくつか解説していますので、困った時はそちらを参考にしてください。


【Unity入門の森の最新ゲーム開発講座もお届け】

コンパイルエラーの種類と対処方法

今回、初めてプログラミングをした方の中には、スクリプトを書いているうちにUnity Editorのコンソール画面に何やら赤いテキストが表示されたかもしれません。

その赤いテキストがコンパイルエラーです。

C#コンパイラーが「スクリプトをビルドする時に何が書かれているのかわからない」と判断した時に表示されるものです。

簡単に言うと、あなたのプログラムの書き方にミスがあったということです。

コンパイルエラーが出た画面の画面

コンパイルエラーがあるとコンソールタブに表示される。

プログラミング初心者がつまずくポイントで多いのは、このコンパイルエラーの意味がよくわからずにそのまま挫折してしまうことです。

コンパイルエラーを取り除けないとUnityを動かすことができませんからね。

そんな憎らしいコンパイルエラー。

でも、コンパイルエラーはC#コンパイラーがスクリプトの中に書き方のミスがあったことを教えてくれるものなので、むしろ間違いを直すためのヒントを与えてくれます。

さらに、ミスした部分がスクリプトのどの行にあるのかも教えてくれるので、エラーを怖がらずに表示されたテキストを見てみましょう!

コンパイラエラーの見方

コンパイルエラーが発生した時は基本的にコンソールタブ上に出力されます。コンソールタブの開き方は上の方で説明してるので、そちらを参照してください。

以下の画像で示されているコンソールタブにはコンパイルエラー以外にもアプリ実行時のエラーやログが出力されます。
このタブが開発の手助けをしてくれます。

基本的にコンパイルエラーは次のような形式をとっています。

  • 発生したファイルとその行、列番号
  • エラー番号
  • コンパイルエラーの詳細な内容
コンパイルエラーの解説の画像

コンパイルエラーが発生した時はファイルパスとその中の行、列番号とエラー番号、詳細な内容が表示される。

使用している環境によっては、エラーテキストが英語のままになっているかもしれません。

その場合でもエラー番号と発生したファイルと行、列番号については共通しています。

そこに表示されるテキストが全て読めなくてもなんとなくコンパイルエラーの原因がわかるようになってきますので、コンパイルエラーの対処の経験をどんどん積んでいきましょう!

よくあるコンパイルエラーとその対処法

次によくあるコンパイルエラーについて解説していきます。

ただ、コンパイルエラーも膨大な数が存在しているため、その全てについて解説するのは難しいため、ここではよくあるコンパイルエラーについていくつか抜粋しています。

どうしてもわからなくなった時は初めから書き直してみるのもオススメです。

また、コンパイルエラー文章をコピペして検索してみましょう。解決法が見つかるかもしれません。

また、一つコンパイルエラーが発生した時は発生した場所以外にもコンパイルエラーが100個単位で大量に発生することがよくあります。

ですが、エラーの原因が実は一つということもよくあります。

なので、エラーを修正する時はなるべくコンソールタブの上の方にあるものから直していくとあっという間にコンパイルエラーがなくなっていくでしょう。

コンパイルエラー実例1: セミコロン忘れ

上のサンプルコードを書きますと、エラー番号 CS1002のコンパイルエラーが発生します。

CS1002 セミコロン忘れの画像

‘;’を忘れた時に出るコンパイルエラー。

エラー内容は ; expectedとありますが、これは単純に;(セミコロン)を文末に付けるのを忘れていることを表しています。

画像にあるコンパイルエラーは全てこの;忘れによるもので、それぞれAssets/Sample.csの

  • 6行目
  • 7行目
  • 8行目
  • 12行目
  • 17行目

にエラーが発生していることが読み取れます。

なので、解決方法としては上にあげたエラー発生箇所に;をつけるだけの簡単なコンパイルエラーになります。

コンパイルエラー実例2: キーワードミス

上のサンプルコードを書きますと、色々な種類のコンパイルエラーが発生します。

コンパイルエラー キーワードミスの画像

一つのコンパイルエラーから大量のコンパイルエラーが発生することも多々ある。

実際には5か所ほど書き間違えがあるだけですが、実際にコンパイルするとそれ以上のエラーが発生します。

C#コンパイラーから見ると一つの書き間違えがあると、その後に続くソースコードも間違った書き方になってしまいます。
その結果、一つの間違いから複数のコンパイルエラーが発生することになります。

また、コンパイルエラーの原因は書き間違えただけなのですが、実際にエラーとして出力される内容にはそう書かれていません。このようにミスした内容とコンパイルエラーの内容が異なることもよくあります

このような時はファイルパスと行番号からミスした内容を推測するしかないので、コンパイルエラーの対処法の経験を積んでいきましょう!

コンパイルエラー実例3: 型名・変数名ミス

今回のサンプルコードでは段階的にコンパイルエラーが発生します。

コンパイラーはスクリプト上にある書き間違えを検出してくれますが、一度に全てのミスを検出してくれる訳ではありません

書き間違えがあった場合は実装上の都合や処理速度の向上などの理由から、それ以降のひとまとまりとして扱えるコードの塊のコンパイルをスキップする場合があります。

なので、一度コンパイルエラーを修正してもさらに他のエラーが出るということもプログラミング作業中ではよくあることですので根気よく修正していってください。

それでは、まずこの状態でコンパイルするとCS0246のエラーが発生します。

CS0246 型名ミスの画像

型名を間違えた時のコンパイルエラー。エラー内容をよく読むと型名と名前空間のどちらかの名前なのかわからない的な内容になっている。

このエラーはスクリプトの中で書いた型名または名前空間をコンパイル環境から検索してみたけど一致するものがない時に発生します。

原因としては名前の書き間違えが主な原因です。その他に開発経験を積んで他の人が作ったライブラリ、フレームワークを使った時にそれらと開発環境をリンクし忘れている時にも発生します。

どちらにしても設定し忘れが原因になってきます。

今回のサンプルコード上では5行目と7行目にコンパイルエラーが発生していますので、そちらを修正しましょう!

修正してみますと残念ながらコンパイラーは次のミス(CS0103)を発見し、まだコンパイルに失敗します。

CS0103 変数名間違えの画像

変数名を間違えた時のコンパイルエラー。こちらは現在のスクリプトの環境の中にはそんな名前を持つものはないという内容のエラーになっている。

こちらはエラーが発生した部分から見て、ColoraaaVauelという名前の変数がないときに発生します。

今回の場合は単純に書き間違えがコンパイルエラーの原因なので、変数名の修正を行うだけで解決するので修正してみましょう!

修正できたら今回のケースではこれ以上のコンパイルエラーは発生しないはずです。

めでたくエラー修正を行うことができました!

スコープについて

今後、より複雑なスクリプトを書いていくようになると、変数やクラスのスコープ(scope)という概念がプログラミングの中に出てきます。

これは変数やクラスには使用できる範囲というもの存在しており、ある変数の使用有効範囲(スコープ)から外れたところでその変数を使った時にもこのコンパイルエラーは発生します。

スコープにつきましてはまた別の部分で詳しく解説していきたいと思います。

ちなみにpublicもスコープに関係するC#のキーワードになります。

コンパイルエラーの種類はまだまだたくさんある・・・が経験を積んで乗り越えよ!

ここまで、コンパイルエラーとその解決法についてみてきました。ここで紹介したもの以外にもコンパイルエラーは大量に存在していますので、その全てを解説することは難しいです。

コンパイルエラーは初心者の方から見るととても難解なもので修正しにくいものに見えますが、基本的には書き間違え、アプリの開発環境の設定し忘れなどが原因になります。

なので、恐れずエラーの内容を読んでみたり、エラー番号やエラー文で検索してみたり、他の人に質問してみてください。解決した時は大体は些細なミスが多いものです。(一部本当に難しいものやコンパイラーのバグなどもありますが…)

以上で、コンパイルエラーについての解説を一旦終わりたいと思います。

次の記事の方に進んでみましょう!

次の記事:

Unity C# 変数と型の使い方 宣言や代入・型変換について
前回はコンパイルエラーとその対処法について解説しました。 前回の記事: 今回の記事ではC#の文法についてみていきましょう! プログラミングにおいて最重要な変数と型についてしっかり解説しています。 型については、初心者さんはいきな...

初心者向けUnityC#入門講座に戻る>>


【Unity入門の森の最新ゲーム開発講座もお届け】

コメント

タイトルとURLをコピーしました