namespaceを使ってみる(C#スクリプト)|Unityゲーム制作

今回はnamespace(名前空間)を利用してみます。Unityというより少しプログラム的なメモになります。

はじめに

namespaceを利用することで、クラス名の衝突(重複)を避けることができます。

個人でゲームを製作する場合でも、他のゲームでも使えそうなスクリプトにnamespaceを利用することで、再利用しやすくなります。今回はnamespaceを簡単に利用してみます。

簡単なスクリプトの例

まずは下記スクリプトを作成します。

using UnityEngine;

public class SampleScript : MonoBehaviour
{
    void Start()
    {
        int i = Random.Range(1, 3);
    }
}

「Random.Range」は指定した範囲のランダムな値を返します。上記の場合は1か2となります。よく使うものですね。

この「Random.Range」というメソッドはUnityEngine内にあるので、利用する時は「using UnityEngine」を記載するか、下記のようにする必要があります。

UnityEngine.Random.Range(1, 3);

デフォルトで用意されているUnityEngineというnamespace(名前空間)に、Randomクラスがあり、その中にRangeというメソッドがあるという感じです。

namespace UnityEngine;

public static class Random
	
    public static int Range(int minInclusive, int maxExclusive)

新規でスクリプトを作成

オリジナルのnamespaceを作成してみます。

新規でスクリプトを作成して、スクリプト名はRandomとします。下記は作成した後に、「Start」と「Update」を消した状態です。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Random : MonoBehaviour
{
}

スクリプトを下記に変更します。サンプルとして、Random.Rangeを呼ぶと0を返すようにしてます。

namespace Sample
{
    public static class Random
    {
        public static int Range()
        {
            return 0;
        }
    }
}

Sampleという名前空間だと分かりにくいし、Random.Rangeで返す値が0というのも変なので、ここは何をしているのか、実際には、ある程度分かるような名前にする所です。今回はあくまでも動作確認のサンプルです。

利用する場合は、UnityEngineの時と同じように、下記のようにします。

using Sample;

public class SampleScript
{
    void Start()
    {
        int i = Random.Range();
    }
}

これで実行すると、変数iには0が入ります。

説明文の表示

また、カーソルを合わせたときに、下記のように説明文を出すこともできます。

下記のようにスクリプトを変更します。「///」を入力すると自動で「summary」、「returns」が出ます。

namespace Sample
{
    public static class Random
    {
        /// <summary>
        /// サンプルです。
        /// </summary>
        /// <returns>0</returns>
        public static int Range()
        {
            return 0;
        }
    }
}

今回はあくまでもnamespaceとはどういうものかという触りです。実際にはどのゲームでも共通で利用できそうなものにnamespaceを利用しておくと便利ですね。

タイトルとURLをコピーしました