SettingsManager.cs 2.16 KB
using UnityEngine;
using System.Collections;
using MiniJSON;
using System.IO;

/// <summary>
/// Simple script to retrieve settings for app. Stor settings JSON file in StreamingAssets, named settings.json
/// </summary>
public class SettingsManager
{
    private static IDictionary _cmsDict = null;
    public static IDictionary cmsDict
    {
        get
        {
            if (_cmsDict == null)
            {
                string path = Application.streamingAssetsPath + "/settings.json";
                if (!File.Exists(path))
                {
                    Debug.LogError("SettingsManager: No settings file found :(");
                    return null;
                }

                _cmsDict = (IDictionary) Json.Deserialize(File.ReadAllText(path));
            }

            return _cmsDict;
        }
    }

    public static string GetString(string key)
    {
        string val = string.Empty;

        if (cmsDict != null && cmsDict.Contains(key))
            val = cmsDict[key].ToString();
        else
            Debug.LogError(string.Format("SettingsManager: \"{0}\" does not exist in settings file", key));

        return val;
    }

    public static int GetInt(string key)
    {
        int val = 0;

        if (cmsDict != null && cmsDict.Contains(key))
            System.Int32.TryParse(cmsDict[key].ToString(), out val);
        else
            Debug.LogError(string.Format("SettingsManager: \"{0}\" does not exist in settings file", key));

        return val;
    }

    public static float GetFloat(string key)
    {
        float val = 0;

        if (cmsDict != null && cmsDict.Contains(key))
            float.TryParse(cmsDict[key].ToString(), out val);
        else
            Debug.LogError(string.Format("SettingsManager: \"{0}\" does not exist in settings file", key));

        return val;
    }

    public static bool GetBool(string key)
    {
        bool val = false;

        if (cmsDict != null && cmsDict.Contains(key))
            val = cmsDict[key].ToString().ToLower() == "true" ? true : false;
        else
            Debug.LogError(string.Format("SettingsManager: \"{0}\" does not exist in settings file", key));

        return val;
    }
}