【ハルシオンブログ】Unityでシーンを移動するとオブジェクトが消えちゃうからデータの引き継ぎどうするの!?
こんにちは!坂内っす!
一気に寒くなってきましたね!
朝のコーヒーがついにホットコーヒーになりました。
さて、Unityの話題です。
シーンを跨いでデータ等を保持したい場合、皆さんどうやってますか?
いちいちPlayerPrefで保存とかしてたら大変ですよね。
クラスにデータを入れて持っていきましょ。
なんでもいいですが、データを引き回すクラスを作成し、コンポーネントとしてオブジェクトにつけておきます。
【DataManager.cs】
適当にこんな感じで作ってみました。
こいつを空のオブジェクトにつけます。
肝となるのは
DontDestroyOnLoad(this);
シーンを跨ぐと、すべてのオブジェクトが消えてしまうが、DontDestroyOnLoadがあるオブジェクトは消えません。
これでゲーム中で使うデータをシーン間で共有できます。
注意することは、以下です。
●Aシーンにこのオブジェクトを置いておく。
●Aシーン>Bシーン>Aシーンと遷移。
この時Aシーンの上記DontDestroyOnLoadのあるオブジェクトが複数作られてしまうので、その対応を入れましょう。
気が付いたら同じオブジェクトが複数できてしまいます。
ということで、本日はデータをシーン間で引き継ぐ方法でした!あでゅ~ノシ
一気に寒くなってきましたね!
朝のコーヒーがついにホットコーヒーになりました。
さて、Unityの話題です。
シーンを跨いでデータ等を保持したい場合、皆さんどうやってますか?
いちいちPlayerPrefで保存とかしてたら大変ですよね。
クラスにデータを入れて持っていきましょ。
なんでもいいですが、データを引き回すクラスを作成し、コンポーネントとしてオブジェクトにつけておきます。
【DataManager.cs】
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DataManager : MonoBehaviour {
public int intAAA;
public string strAAA;
void Start () {
DontDestroyOnLoad(this);
}
void Update () {
}
}
適当にこんな感じで作ってみました。
こいつを空のオブジェクトにつけます。
肝となるのは
DontDestroyOnLoad(this);
シーンを跨ぐと、すべてのオブジェクトが消えてしまうが、DontDestroyOnLoadがあるオブジェクトは消えません。
これでゲーム中で使うデータをシーン間で共有できます。
注意することは、以下です。
●Aシーンにこのオブジェクトを置いておく。
●Aシーン>Bシーン>Aシーンと遷移。
この時Aシーンの上記DontDestroyOnLoadのあるオブジェクトが複数作られてしまうので、その対応を入れましょう。
気が付いたら同じオブジェクトが複数できてしまいます。
ということで、本日はデータをシーン間で引き継ぐ方法でした!あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】System.DateTime.Nowを使っててあれ??てなったよ・・・ | 【ハルシオンブログ】久々にMacとか触ってUnityでコンパイル通らなねぇよってなった話 »
コメント
| h o m e |