Unityで扱うstatic変数を学習

staticとは

staticの機能は,クラス自身が変数やメソッドを持てるようにすることである。通常,クラスは設計図でありインスタンスを作った時点で,変数が生まれる。ところが,staticを付けて変数を宣言するとその変数はインスタンスを作らなくても最初から存在することになるのである。(引用元:連載C#入門
これを使う時は常に同じ変数を持ち続けるScoreやTimerなどに活用してみるところから始める。

アクセスの制限

先程の理由からどんな変数でも外部から無制限にアクセスができてしまうと思いもよらない所で利用されプログラムが想定していない挙動もしくは稼働しない事がある。これらを避けるために`private``public`が存在する。

変数での使い方(static側)

using UnityEngine;

public class ScoreManager : MonoBehaviour
{
    public static int score = 0;
}

変数での使い方(アクセス側)

using UnityEngine;

public class ScoreAccess : MonoBehaviour
{
    void Start()
    {
        ScoreManager.score = 100;
        Debug.Log(ScoreManager.score);
    }
}

関数での使い方(static側)

public static void AddScore(int addPoint){
    score += addPoint;
}

関数での使い方(アクセス側)

using UnityEngine;

public class ScoreAccess : MonoBehaviour 
{
    void Start () 
    {
        Score.score = 10;
        Score.AddScore (20);
        Debug.Log(Score.score);
    }
}

まとめ

今までなんとなくで使っていたstaticについて調べ簡潔にまとめていきました。

この記事が気に入ったらサポートをしてみませんか?