Unity 本地文件储存(无本地文件显示 防止玩家修改数据)
来源:互联网 发布:幼儿网络教育 编辑:程序博客网 时间:2024/06/05 00:24
本地文件储存脚本
使用的是Unity自带的PlayerPrefab这个类 但是这个类只能保存 Int float string 三种类型
本人基于这个类 自己封装了一些方法 包括数组, Vector3 Quaternion
这个类可扩展性很强 大家可以基于本人的方法自己增加自己需要保存的方法
using System;using UnityEngine;/// <summary>/// 本地数据管理类 /// </summary>public class GameDataManager{ /// <summary> /// 储存Bool /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetBool(string key, bool value) { PlayerPrefs.SetString(key + "Bool", value.ToString()); } /// <summary> /// 取Bool /// </summary> /// <param name="key">键</param> /// <returns></returns> public static bool GetBool(string key) { try { return bool.Parse(PlayerPrefs.GetString(key + "Bool")); } catch (Exception e) { return false; } } /// <summary> /// 储存String /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetString(string key, string value) { PlayerPrefs.SetString(key, value); } /// <summary> /// 取String /// </summary> /// <param name="key">键</param> /// <returns></returns> public static string GetString(string key) { return PlayerPrefs.GetString(key); } /// <summary> /// 储存Float /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetFloat(string key, float value) { PlayerPrefs.SetFloat(key, value); } /// <summary> /// 取Float /// </summary> /// <param name="key">键</param> /// <returns></returns> public static float GetFloat(string key) { return PlayerPrefs.GetFloat(key); } /// <summary> /// 储存Int /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetInt(string key, int value) { PlayerPrefs.SetInt(key, value); } /// <summary> /// 取Int /// </summary> /// <param name="key">键</param> /// <returns></returns> public static int GetInt(string key) { return PlayerPrefs.GetInt(key); } /// <summary> /// 储存IntArray /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetIntArray(string key, int[] value) { for (int i = 0; i < value.Length; i++) { PlayerPrefs.SetInt(key + "IntArray" + i, value[i]); } PlayerPrefs.SetInt(key + "IntArray", value.Length); } /// <summary> /// 取IntArray /// </summary> /// <param name="key">键</param> /// <returns></returns> public static int[] GetIntArray(string key) { int[] intArr = new int[1]; if (PlayerPrefs.GetInt(key+ "IntArray")!=0) { intArr = new int[PlayerPrefs.GetInt(key + "IntArray")]; for (int i = 0; i < intArr.Length; i++) { intArr[i] = PlayerPrefs.GetInt(key + "IntArray" + i); } } return intArr; } /// <summary> /// 储存FloatArray /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetFloatArray(string key, float[] value) { for (int i = 0; i < value.Length; i++) { PlayerPrefs.SetFloat(key + "FloatArray" + i, value[i]); } PlayerPrefs.SetInt(key + "FloatArray", value.Length); } /// <summary> /// 取FloatArray /// </summary> /// <param name="key">键</param> /// <returns></returns> public static float[] GetFloatArray(string key) { float[] floatArr = new float[1]; if (PlayerPrefs.GetInt(key + "FloatArray") != 0) { floatArr = new float[PlayerPrefs.GetInt(key + "FloatArray")]; for (int i = 0; i < floatArr.Length; i++) { floatArr[i] = PlayerPrefs.GetFloat(key + "FloatArray" + i); } } return floatArr; } /// <summary> /// 储存StringArray /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetStringArray(string key, string[] value) { for (int i = 0; i < value.Length; i++) { PlayerPrefs.SetString(key + "StringArray" + i, value[i]); } PlayerPrefs.SetInt(key + "StringArray", value.Length); } /// <summary> /// 取StringArray /// </summary> /// <param name="key">键</param> /// <returns></returns> public static string[] GetStringArray(string key) { string[] stringArr = new string[1]; if (PlayerPrefs.GetInt(key + "StringArray") != 0) { stringArr = new string[PlayerPrefs.GetInt(key + "StringArray")]; for (int i = 0; i < stringArr.Length; i++) { stringArr[i] = PlayerPrefs.GetString(key + "StringArray" + i); } } return stringArr; } /// <summary> /// 储存Vector2 /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetVector2(string key, Vector2 value) { PlayerPrefs.SetFloat(key + "Vector2X", value.x); PlayerPrefs.SetFloat(key + "Vector2Y", value.y); } /// <summary> /// 取Vector2 /// </summary> /// <param name="key">键</param> /// <returns></returns> public static Vector2 GetVector2(string key) { Vector2 Vector2; Vector2.x = PlayerPrefs.GetFloat(key + "Vector2X"); Vector2.y = PlayerPrefs.GetFloat(key + "Vector2Y"); return Vector2; } /// <summary> /// 储存Vector3 /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetVector3(string key,Vector3 value) { PlayerPrefs.SetFloat(key + "Vector3X", value.x); PlayerPrefs.SetFloat(key + "Vector3Y", value.y); PlayerPrefs.SetFloat(key + "Vector3Z", value.z); } /// <summary> /// 取Vector3 /// </summary> /// <param name="key">键</param> /// <returns></returns> public static Vector3 GetVector3(string key) { Vector3 vector3; vector3.x = PlayerPrefs.GetFloat(key + "Vector3X"); vector3.y = PlayerPrefs.GetFloat(key + "Vector3Y"); vector3.z = PlayerPrefs.GetFloat(key + "Vector3Z"); return vector3; } /// <summary> /// 储存Quaternion /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> public static void SetQuaternion(string key, Quaternion value) { PlayerPrefs.SetFloat(key + "QuaternionX", value.x); PlayerPrefs.SetFloat(key + "QuaternionY", value.y); PlayerPrefs.SetFloat(key + "QuaternionZ", value.z); PlayerPrefs.SetFloat(key + "QuaternionW", value.w); } /// <summary> /// 取Quaternion /// </summary> /// <param name="key">键</param> /// <returns></returns> public static Quaternion GetQuaternion(string key) { Quaternion quaternion; quaternion.x = PlayerPrefs.GetFloat(key + "QuaternionX"); quaternion.y = PlayerPrefs.GetFloat(key + "QuaternionY"); quaternion.z = PlayerPrefs.GetFloat(key + "QuaternionZ"); quaternion.w = PlayerPrefs.GetFloat(key + "QuaternionW"); return quaternion; }}
阅读全文
0 0
- Unity 本地文件储存(无本地文件显示 防止玩家修改数据)
- Unity 保存Json数据到本地文件
- Unity 保存Json数据到本地文件
- Unity 中存储数据到JSON本地文件
- Unity IniFile 保存游戏数据到本地文件
- iOS5可能会删除本地文件储存
- iOS5可能会删除本地文件储存
- unity 读取本地文件
- 巧妙地批量修改unity本地文件的参数
- unity 关于手机客户端的本地文件储存问题 文件路径--适用于安卓手机
- Unity 保存Json数据到本地文件(字典)
- MSSQL 读取本地文件数据
- MSSQL 读取本地文件数据
- android加载本地文件数据
- 数据写入本地文件
- echarts引用本地文件,动态传数据时只要显示坐标轴
- phpmyadmin连接远程,本地文件修改
- git 忽略本地文件的修改
- 模板为什么不支持分离编译?
- JavaScript基础知识——数组遍历的方法
- 昼短苦夜长,何不秉烛游
- java选择排序算法案例
- Spring
- Unity 本地文件储存(无本地文件显示 防止玩家修改数据)
- 安装部署redis+实现redis分布式缓存 java+Spring+redis
- linux 练习六 守护进程_文件锁_系统时间
- VLAN原理详解
- TCP协议解析
- CSS-大图片img在父级容器div中居中的妙招
- 文章标题
- SQL Server In Memory OLTP
- 14.服务机构的企业家精神