08 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 10

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】いろんなシーンのクラスからアクセスが必要な時にやってること。 

こんにちは。
大坂です。

今日はすごくジメジメいしていますね。
Tiwtterのトレンドでも湿度100%とかって上がってました。。

さて、今週もちょっとしたネタです。
ゲームを作っているときに必要な情報を使用していろんなクラスからの処理をしたいときに、
いろんなクラスで毎回GameObjectを探してGetComponentしてってやるのも面倒なので、Staticにアクセスできるようにすると楽だよねってお話です。

とりあえずこんな感じ。
public class ItemManager : MonoBehaviour {

protected static ItemManager instance;
public static ItemManager Instance {
get {
if(instance == null) {
instance = (ItemManager)FindObjectOfType(typeof(ItemManager));
}
return instance;
}
}

void Awake() {
// シーン遷移では破棄させない
DontDestroyOnLoad(gameObject);
}

public void AddItem(ItemData data) {
// アイテムを追加する処理
~~~~~
}
}

かなり簡略化した例ですけど、アイテムを管理するクラスです。
ショップでアイテム買ったときとかドロップしたアイテムを拾うとか。
違うシーンで使うことを想定している感じです。

使い方はこんな感じ。
public class ItemTest : MonoBehaviour {
void Start() {
ItemData data = new ItemData();
// アイテム情報を作る処理は省略
~~~~~
ItemManager.Instance.AddItem(data);
}
}

簡単に処理を呼び出せますね。

と、こんなクラスを利用してゲームを作ったりしてますよってお話でした。
ではまたノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0