namespaceは、C#でプログラミングする際にコードの整理や構造化を助けるための仕組みです。
Unityプロジェクトでは、複数のスクリプトやクラスが存在する場合があります。これらを適切に整理し、名前の衝突を避けるためにnamespaceを使用します。
namespaceを使用することで、クラスや関数がどのグループに属しているかを明示的に指定できます。
これにより、異なる場所で同じ名前のクラスや関数を定義しても、
それぞれが異なるnamespaceに属している限り、名前の衝突を回避できます。
例えば、アセットストアからインポートしたアセット内のスクリプトのファイル名に「GameManager」という名前があったとき、
namespace の機能を利用していれば、同名の GameManager を複数作成することが出来ます。
このように namespaceを使うことで、異なるスクリプトでも同じ名前のクラスや関数を定義でき、それぞれが独立して動作します。
また大規模なプロジェクトでは、数百ものクラスや関数が存在することがあります。
これらをnamespaceごとにまとめることで、コードの整理がしやすくなります。
例えば、UIに関するクラスは「UI」namespaceにまとめ、ゲームロジックに関するクラスは「Gameplay」namespaceにまとめるなど、機能ごとに整理することができます。
ピリオドを利用することで、「MyGame.UI」や「MyGame.GamePlay」のように書くことも可能です。
作成した namespace は using で宣言することが出来ます。
いつもスクリプトの上部に書いているものですね。
C#でのnamespaceの宣言は非常に簡単です。
通常、ファイルの先頭にnamespaceを宣言します。
以下は基本的な構文です。
namespace Mynamespace {
// ここにクラスや関数を定義する
}
例えば、自分のゲームに関連するクラスや関数をまとめるために、次のようにnamespaceを宣言できます。
<使用例>
namespace MyGame {
public class Player {
// プレイヤーのプロパティやメソッドを定義
}
public class Enemy {
// 敵のプロパティやメソッドを定義
}
}
上記の例では、PlayerクラスとEnemyクラスは共にMyGameというnamespaceに属しています。
これにより、他のnamespace内で同じ名前のクラスが存在しても問題ありません。
作成した namespace は他のクラス内の using で宣言できます。