目次
はじめに
C# のコードで #region
や #endregion
の記載を見かけることがあります。
Unity 開発においては、デバッグ時に実行したいコードを #if DEBUG
~ #endif
で囲んだりします。
このような#
から始まるシンボルはプリプロセッサディレクティブと呼ばれ、上記だけではなく他にも数多くの種類が存在します。本記事ではC#のコーディング時に使えるディレクティブをいくつか紹介します。
#region ディレクティブ:範囲を定義
#region
は #endregion
で囲むことで範囲を定義できます。
この2つはお互いの存在を確認するだけでその他は何もしません。2つが揃っていないとコンパイルエラーが発生します。
以下のように#region
から#endregion
で囲まれたコードは VSCode 上などで折りたたむことが可能です。

#warning ディレクティブ:警告を出す
#warning
ディレクティブを使うことで強制的にコンパイラの警告を出せます。
記載方法は#warning
のあとに警告に出したいメッセージを記載するだけです。

Unity のコンソールを確認すると、警告が表示されるようになりました。

#error ディレクティブ:エラーを出す
#error
ディレクティブを使うことで強制的にコンパイルエラーを発生させます。
記載方法は#error
のあとにエラー文を記載するだけです。

Unity のコンソールを確認すると、コンパイルエラーが発生しました。

#line ディレクティブ:警告やエラーの行番号を指定
#line
ディレクティブを使うと、コンパイル時に出力されるエラーや警告メッセージに行番号やファイル名を指定できます。
#line 行番号
使い方は#line [行番号] [ファイル名]
です。
例えば以下のように SampleClass 内に #line 20 "TestClass.cs"
と記載します。
public class SampleClass
{
public static void Main()
{
#line 20 "TestClass.cs"
int a;
}
}
コンパイル結果を確認すると、本来 SampleClass 内で起こる警告が TestClass.cs の 20 行目への警告として表示されました。

#line default
#line default
は、指定した行の番号を既定の番号に戻します。
例えば以下の場合、#line default
記載以降の行番号は規定の行番号に戻ります。
public class SampleClass
{
public static void Main()
{
#line 20 "TestClass.cs"
int a;
int b;
#line default
int c;
}
}
コンパイル結果は以下の通りです。2つ目までの int a;
とint b;
への警告は、行番号が 20, 21行目と指定した行からの番号となっていますが、3つ目の int c;
への警告は、規定の行番号である 9行目に戻っているのが分かります。

#pragma ディレクティブ:特別な命令をコンパイラに指示
#pragma ディレクティブを使うことでコンパイルに関する特別な命令をコンパイラに指示します。
#pragma
には、特定の警告を有効または無効にする#pragma warning
と、 ASP.NET ページのデバッグに使用するソースファイルのチェックサムを生成する#pragma checksum
が存在します。
#pragma warning
#pragma warning disable [警告番号]
で指定した番号の警告を無効にします。
#pragma warning restore [警告番号]
で指定した番号の警告を有効にします。

参考資料
- C# プリプロセッサ ディレクティブ | Microsoft DOCS
- プリプロセス | ++C++ // 未確認飛行 C
Unityの教科書 Unity 2021完全対応版 2D&3Dスマートフォンゲーム入門講座
いちばん売れているUnity入門書が最新バージョンに対応 最新環境でゲーム制作を楽しく体験しましょう! ■本書の特徴 ●初めてゲーム制作にチャレンジする人に最適! 最初は簡単な2Dゲームの制作からスタートし、徐々に難しいゲームへと進めていきます。サンプルゲームの制作を通じて、Unityの機能と、ゲームを作るための知識が自然と身に付きます。 ●プログラムの書き方がわからなくても大丈夫! C#の基礎知識も掲載しているので、プログラミング経験のまったくない人でも、安心して学習を開始することができます。 ●ゲームを面白くするためのヒントを掲載! Unityの使い方だけでなく、ゲームの設計方法、レベルデザインなど、ゲームを面白く作るための知識も紹介しています。
作って学べる Unity 本格入門 [Unity 2021対応版] 作って学べる開発入門
本書はUnityでゲーム開発を行いたい人を対象に、1つのゲームを制作する流れを通してUnity 2021の操作が学べる入門解説本です。本書内で武器などを調達し、食べ物を求めながら冒険し、武器でモンスターと戦う3Dアクションゲームを制作していきます。本格的なゲームを実際に制作しながらUnityの使い方を学べますので、楽しみながら学びことができ、かつ実践的なテクニックも身につけることができます。
新・標準プログラマーズライブラリ なるほどなっとく C#入門
本書は、プログラミングの知識・経験がなくてもC#の基本文法を身につけることができる入門書です。 そのために、「初心者に理解して身につけてほしい機能を厳選し、ポイントを絞る」 「C#になぜその機能があるのか、どんな場面で使うのかという点も納得できる」という方針で解説しています。 C#の文法は膨大ですが、これから学ぼうとする方は、すべてを覚える必要はありません。 本書を通して、「なぜ」という疑問をひとつひとつ解消しながら、 利用頻度の高い文法をしっかりと自分のものにすることができます。