[Unity] [C#] クラス定義を複数ソースに分割する

UnityでC#のクラスを定義するとき、通常はひとつのソースファイル内で完結するのが普通でしょう。
しかし、そのクラスの定義が数千行になった場合はソースファイルを編集するのが大変になります。
また、複数人でひとつのクラスを実装するとき、ファイルが同一だと競合を起こしてしまいます。
SVNやGITなどのバージョン管理ツールを用いればマージである程度回避できますが、このマージ機能もあまり信用できるものではありません。

このような場合、ひとつのクラス定義を複数のソースファイルに分割できれば問題を解消できます。

C#で以下のクラスを定義していたとします。

Blinker.cs

Blinker.csにはBlinkerクラスが定義されています。
このクラス内にはメソッドが3つ定義されています。
このクラス定義を分割するにはpartialキーワードをclassの前に付けます。

これで以下のようにソースファイル分割できるようになります。

Blinker.cs

BlinkRoutine.cs

Blink()を別ファイルに分割できました。
別ファイルに定義したフィールドやメソッドは問題なく使えます。

また、上記BlinkクラスはMonoBehaviourを継承していますが、複数ファイルに分割する場合はどれかひとつだけ継承元を書いていればよいです。
したがって、以下のように片方の継承元を省略できます。

Blinker.cs

BlinkRoutine.cs

もちろん、各ファイルで異なったクラスから継承してしまうとコンパイルエラーとなります。

ぜひソース分割の機能を使ってソースファイルの管理を楽にしてみてはいかがでしょうか。