[Unity] namespace を使う

ネームスペース(namespace)

Unityでnamespace使っていますか?
使っていたらそれで良いんです。十分です。
使っていないのならば、Unityで使用するときよくやる方法を書いておくのでこれからという人は少しの参考にでもしてください。
最後には、Assembly Definition(.asmdef)ファイルについても少しふれますよ。

あらゆるプロジェクトで使いまわせるコード

どんなプロジェクトでも使えるものはネームスペースでまとめよう。
namespace 企業名や団体名や屋号
{
    プロジェクトで使いまわせるコード
}
こんな感じで
namespace Chigusa
{
    プロジェクトで使いまわせるコード
}
こうです。

あらゆるプロジェクトで使いまわせるエディター拡張

どんなプロジェクトでも使えるエディター拡張をネームスペースでまとめよう。
namespace 企業名や団体名や屋号
{
    namespace Editor
    {
        プロジェクトで使いまわせるエディター拡張
    }
}
こんな感じで
namespace Chigusa.Editor
{
    プロジェクトで使いまわせるエディター拡張
}
こうです。
namespaceは '.' で連結することができます。

他には?

基本的にこれ以上のネームスペースは必要ないです。なぜなら複雑になったり面倒になったりするので・・・。
でも、プロジェクト内でルールを作って使うのは良いことです。でも、無理して使わなくても大丈夫です。





まとめると

namespace YourName
namespace YourName.Editor
この2つです。なんか Unity っぽい気がしませんか。
これを分割するのはありです。
namespace YourName.UI
namespace YourName.Sprite
namespace YourName.Sound
namespace YourName.UI.Editor
namespace YourName.Sprite.Editor
namespace YourName.Sound.Editor
こんな風です。でも、最初から分けるとやっぱり手間がかかりすぎるので、無理して分割する必要はないですよ。

ネームスペースで分けたらフォルダーも分ける

"Assets/YourName/Scripts"
"Assets/YourName/Editor"
こういったフォルダーを作って、その下層にcsファイルを配置しましょう。
エディター拡張は、"Editor"フォルダーですよ。
これは後々、役に立ちます。

Assembly Definition

後々の話です。
ネームスペースでフォルダーを分けることで、簡単に、まとめてDLLファイルにすることができます。
Unityの "Assembly Definition" の機能ですね。
まとめたからどうだって話もありますが、ネームスペース内からプロジェクト専用のコードにアクセスするとエラーがでるので、デバッグの手間がはぶけてちょっと便利です。
そして、ネームスペースを増やすとここら辺がちょっと複雑になるので、基本的に2つのネームスペースで済ませるのがおすすめという感じです。

ネームスペースは、他のアセットと被らないように気をつけなきゃね



0 件のコメント :

コメントを投稿