static public float GetFloat(string _key, float _defaultValue)
    {
        string _keyEncrypt = GCrypt.AES_encrypt(_key, GCryptPlayerPrefs.aes_key);

        if (false == PlayerPrefs.HasKey(_keyEncrypt))
        {
            return(_defaultValue);
        }

        string value        = PlayerPrefs.GetString(_keyEncrypt);
        string valueDecrypt = GCrypt.AES_decrypt(value, GCryptPlayerPrefs.aes_key);

        if (!string.IsNullOrEmpty(valueDecrypt))
        {
            float result = 0f;
            if (true == float.TryParse(valueDecrypt, out result))
            {
                return(result);
            }
            else
            {
                return(_defaultValue);
            }
        }
        else
        {
            return(_defaultValue);
        }
    }
    static public bool GetBool(string _key, bool _defaultValue)
    {
        string _keyEncrypt = GCrypt.AES_encrypt(_key, GCryptPlayerPrefs.aes_key);

        if (false == PlayerPrefs.HasKey(_keyEncrypt))
        {
            return(_defaultValue);
        }

        string value        = PlayerPrefs.GetString(_keyEncrypt);
        string valueDecrypt = GCrypt.AES_decrypt(value, GCryptPlayerPrefs.aes_key);

        if (!string.IsNullOrEmpty(valueDecrypt))
        {
            int result = 0;
            if (true == int.TryParse(valueDecrypt, out result))
            {
                return((1 == result)?true:false);
            }
            else
            {
                return(_defaultValue);
            }
        }
        else
        {
            return(_defaultValue);
        }
    }
    static public string GetString(string _key, string _defaultValue)
    {
        string _keyEncrypt = GCrypt.AES_encrypt(_key, GCryptPlayerPrefs.aes_key);

        if (false == PlayerPrefs.HasKey(_keyEncrypt))
        {
            return(_defaultValue);
        }

        string value        = PlayerPrefs.GetString(_keyEncrypt);
        string valueDecrypt = GCrypt.AES_decrypt(value, GCryptPlayerPrefs.aes_key);

        if (!string.IsNullOrEmpty(valueDecrypt))
        {
            return(valueDecrypt);
        }
        else
        {
            return(_defaultValue);
        }
    }
 static public void SetFloat(string _key, float _value)
 {
     PlayerPrefs.SetString(GCrypt.AES_encrypt(_key, GCryptPlayerPrefs.aes_key), GCrypt.AES_encrypt(_value.ToString(), GCryptPlayerPrefs.aes_key));
 }
 static public void SetBool(string _key, bool _value)
 {
     PlayerPrefs.SetString(GCrypt.AES_encrypt(_key, GCryptPlayerPrefs.aes_key), GCrypt.AES_encrypt(((true == _value)?1:0).ToString(), GCryptPlayerPrefs.aes_key));
 }
    /*
     * static public IDictionary GetDictionary(string _key)
     * {
     * string value = GetString(_key, "");
     *      return (string.IsNullOrEmpty(value))?null:(IDictionary)JsonUtility.FromJson(value);
     * }
     */



    static public void SetString(string _key, string _value)
    {
        PlayerPrefs.SetString(
            GCrypt.AES_encrypt(_key, GCryptPlayerPrefs.aes_key),
            GCrypt.AES_encrypt(_value, GCryptPlayerPrefs.aes_key));
    }
 static public void DeleteKey(string _key)
 {
     PlayerPrefs.DeleteKey(GCrypt.AES_encrypt(_key, GCryptPlayerPrefs.aes_key));
 }