

シーンを移動しても変数を引き継ぐ方法はありますか？？

例えば 二個のシーンがあるとします （ショップとメイン）  
ショップで通貨を消費してアイテムを買ったとします。 その効果をメインに引き継ぐ  
方法はありますでしょうか？


CC BY-SA 3.0
2015-11-01T09:18:03.437
18301
2015-11-02T06:27:21.700
9268
question
c# unity3d
unity シーンを移動しても変数を引き継ぐ方法


static なオブジェクト／クラスを作成してそこで通貨やアイテムを管理させるのが簡単な方法です。

例えばこんなクラスを作ります。

[code]

    class GameData {
        static int coins;
        static readonly List<int> items = new List<int>();
    
        public static bool BuyItem(int itemId) {
            // 購入処理
            if (coins >= 10) {
                // アイテムを買った
                items.Add(itemId);
                coins -= 10;
                return true;
            } else {
                // お金が足りない
                return false;
            }
        }
    }
    
[/code]

このスクリプトをメインのシーンにでも追加しておけば、他のスクリプトからは

[code]

    GameData.BuyItem(ItemId.hoge);
    
[/code]

とか、シーンに関係なくいつでもアクセスできるようになります。


CC BY-SA 3.0
2015-11-02T06:27:21.700
18317
2015-11-02T06:27:21.700
2079
18301
answer