2017-04-17 4 views
1

私は現在UnityでターンベースのRPGゲームを開発中です。プレイヤー情報、モンスターリストとアイテムリストを格納するために、私は静的クラスを使用します。データを格納するだけの場合は、C#Unity harmfullのグローバル変数として静的クラスを使用しますか?

public static class GlobalVariables 
{ 
    public static BaseMonster currentMonster; 
    public static BaseCharacter player; 
    public static List<BaseMonster> monsterDatabase; 
    public static Dictionary<string, BaseItem> itemDatabase; 
} 

jsonファイルによるゲーム読み込みがすべてのシーンに使用されている場合にこの値を設定します。

グローバル変数に関するほとんどの人の意見のように有害なのだろうか?

注:currentMonsterは、プレイヤーがモンスターを選択し、「モンスターの読み込み」を判断するために「戦闘シーン」の読み込み時に使用される情報です。

+1

グローバル変数は本質的に悪いものではありません。問題は、a)読み込み時にそれらをすべて初期化する(プログラムの開始時間を遅くする)、b)それらをたくさん持ち、多くのメモリをいっぱいにする(もちろんインスタンス変数も同じことができるが、それらを常にメモリに残していない)、および/またはc)安全性チェックなしでマルチスレッド環境でそれらを使用する。 – john

+0

上記のコメントは実際には良い答えです。 – Bijan

答えて

関連する問題