※あくまで個人的にこう使うと便利かもレベルです。
(partialって何?ってのはここでは省きます。簡単に言えばクラスの定義を複数ファイルにまたいで行うことができるもの。)
##ゲーム内のコンフィグをまとめてみる
Unityでゲームを作る上でファイルのパスやステータスなどの定数、PlayerPrefsのkeyなどの定数を定める静的クラスを作ると思います。
例えば、ファイルのパス、敵のステータス、PlayerPrefsのKeyをまとめたConfigクラス
を作ったとします。
####Config.cs
public static class Config
{
public static class Path
{
public const string Prefabs = "Prefabs/";
public const string BGM = "Audio/BGM/";
public const string SE = "Audio/SE/";
}
public static class Enemy
{
public const int HP = 10;
public const int Power = 5;
public const float Speed = 2.5f;
}
public static class Key
{
public const string SaveData = "SaveData";
}
}
現状はまだ内部に3つのクラスしかないのでまだゴチャゴチャしていないのですが、これが制作が進むにつれてプレイヤーのステータスであったり、タグの名前、ファイルの名前などのクラスをどんどん追加していくと可読性も下がりますし何よりどれがどこにあるのかが分からなくなってきます。
そんな時にpartial
を使ってファイルを分けます。
例として今回は上のConfigクラスをpartialクラスにして大きく2つのファイルに分けてみます。
大まかな分けかたの基準として今回はアプリの設定(Path、Key)
とゲームの設定(Enemy)
として、新たにAppSetting
とGameSetting
のファイルを作り、分けてみます。
####AppSetting.cs
public static partial class Config
{
public static class Path
{
public const string Prefabs = "Prefabs/";
public const string BGM = "Audio/BGM/";
public const string SE = "Audio/SE/";
}
public static class Key
{
public const string SaveData = "SaveData";
}
}
####GameSetting.cs
public static partial class Config
{
public static class Enemy
{
public const int HP = 10;
public const int Power = 5;
public const float Speed = 2.5f;
}
}
※ファイル名とクラス名が一致しませんがstaticかつpartialクラスであるため問題ありません。
こうすることで同じクラスに属してかつファイルを分けることができます。