예제 #1
0
    public void Set(T var, bool val)
    {
        TryInit();

        vars[var] = val;

        #if MF_DEBUG
        string keyName = EnumUtl.ToString(var);
        PlayerPrefsUtl.SetBool(keyName, val);

        string msg = keyName + " = " + val;
        Debug.Log(msg);
        #endif
    }
예제 #2
0
    public void TryInit()
    {
        #if MF_DEBUG
        if (!gameVarsInitialized)
        {
            // Print var button
            DebugMenuManager.Inst.AddPreDBInitDebugOption("Game Vars", "Print",
                                                          DebugMenuManager.DebugOption.eType.eButton, null, () => { PrintVars(); }, null);
            DebugMenuManager.Inst.AddPreDBInitDebugOption("Game Vars", "Delete Prefs",
                                                          DebugMenuManager.DebugOption.eType.eButton, null, () => { PlayerPrefsUtl.DeleteAll(); }, null);

            // Init each var
            if (vars != null)
            {
                var gameVarList = vars.ToList();
                if (gameVarList != null)
                {
                    foreach (var kvp in gameVarList)
                    {
                        // Deserialize from prefs if available
                        string keyName = EnumUtl.ToString(kvp.Key);

                        if (PlayerPrefsUtl.HasKey(keyName))
                        {
                            vars[kvp.Key] = PlayerPrefsUtl.GetBool(keyName);
                        }

                        T gvCopy = kvp.Key;

                        // Create a debug button
                        DebugMenuManager.Inst.AddPreDBInitDebugOption("Game Vars", keyName,
                                                                      DebugMenuManager.DebugOption.eType.eButton, null,
                                                                      () => { Set(gvCopy, !Get(gvCopy)); }, null);
                    }
                }
            }

            gameVarsInitialized = true;
        }
        #endif
    }