博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity中保存和读取数据的类---PlayerPrefs
阅读量:4568 次
发布时间:2019-06-08

本文共 4028 字,大约阅读时间需要 13 分钟。

 一、认识 PlayerPrefs 类

  1.PlayerPrefs 类的方法:

    SetInt();保存整型数据;

    SetString();保存字符串型数据;

    SetFloat();保存浮点型数据;

    GetInt();读取整形数据;         

    GetFlost();读取浮点型数据;

    GetString();读取字符串型数据;

  2.使用PlayerPrefs 中的方法

using Framework.Common.Singleton;using System;using UnityEngine;public class MyPlayerPrefs :Singleton
{ public override void Init() { base.Init(); } ///
/// 读取 /// ///
///
public T Read
(string key) { T value = default(T); if (typeof(T) == typeof(int)) { int _value = PlayerPrefs.GetInt(key); value = (T)Convert.ChangeType(_value, typeof(int)); } else if (typeof(T) == typeof(string)) { string _value = PlayerPrefs.GetString(key); value = (T)Convert.ChangeType(_value, typeof(string)); } else if (typeof(T) == typeof(float)) { float _value = PlayerPrefs.GetFloat(key); value = (T)Convert.ChangeType(_value, typeof(float)); } return value; } public void Save
(string key, T value) { if (typeof(T) == typeof(int)) { int _value = (int)Convert.ChangeType(value, typeof(int)); PlayerPrefs.SetInt(key, _value); } else if (typeof(T) == typeof(string)) { string _value = (string)Convert.ChangeType(value, typeof(string)); PlayerPrefs.SetString(key, _value); } else if (typeof(T) == typeof(float)) { float _value = (float)Convert.ChangeType(value, typeof(float)); PlayerPrefs.SetFloat(key, _value); } } public void Save() { PlayerPrefs.Save(); }}
using UnityEngine;using Dean27_V4;using UnityEngine.UI;public class UIMyPlayerRresf : BaseUI{    private InputField inputFieldName;    private InputField inputFieldExp;    private InputField inputFieldLv;    private Dropdown dropDownSex;    private Text textName;    private Text textLv;    private Text textExp;    private Text textSex;    private void Awake()    {        EventTriggerListener _saveTrigger = EventTriggerListener.Get(transform.Find("SaveButton").gameObject);        _saveTrigger.SetEventTriggerHandle(EnumTouchEventType.OnClick, Save);        EventTriggerListener _readTrigger = EventTriggerListener.Get(transform.Find("ReadButton").gameObject);        _readTrigger.SetEventTriggerHandle(EnumTouchEventType.OnClick, Read);        inputFieldName = transform.Find("InputField_Name").GetComponent
(); inputFieldExp = transform.Find("InputField_Exp").GetComponent
(); inputFieldLv = transform.Find("InputField_Lv").GetComponent
(); dropDownSex = transform.Find("Dropdown_Sex").GetComponent
(); textName = transform.Find("Info/Name").GetComponent
(); textLv = transform.Find("Info/Lv").GetComponent
(); textExp = transform.Find("Info/Exp").GetComponent
(); textSex = transform.Find("Info/Sex").GetComponent
(); } private void Read(GameObject _listener, object _args, object[] _params) { textName.text = MyPlayerPrefs.Instance.Read
("姓名"); textLv.text = MyPlayerPrefs.Instance.Read
("等级").ToString(); textExp.text = MyPlayerPrefs.Instance.Read
("经验").ToString(); textSex.text = MyPlayerPrefs.Instance.Read
("性别"); } private void Save(GameObject _listener, object _args, object[] _params) { string name = inputFieldName.text; float exp = float.Parse(inputFieldExp.text); int lv = int.Parse(inputFieldLv.text); string sex = "男性"; if (dropDownSex.value == 1) { sex = "女性"; } MyPlayerPrefs.Instance.Save
("姓名", name); MyPlayerPrefs.Instance.Save
("经验", exp); MyPlayerPrefs.Instance.Save
("等级", lv); MyPlayerPrefs.Instance.Save
("性别", sex); MyPlayerPrefs.Instance.Save(); }}

  3.实际使用效果

    1.输入存储的信息,并且读取数据之后得到结果为:

      

    

    2.运行程序,直接读取信息:

转载于:https://www.cnblogs.com/Dean27/p/7879254.html

你可能感兴趣的文章
IBM lotus9.0测试版即将公测
查看>>
xml常用方法
查看>>
Cube Stacking(并差集深度+结点个数)
查看>>
AndroidStudio3更改包名失败
查看>>
jq 删除数组中的元素
查看>>
js URL中文传参乱码
查看>>
Leetcode 367. Valid Perfect Square
查看>>
UVALive 3635 Pie(二分法)
查看>>
win系统查看自己电脑IP
查看>>
Backup&recovery备份和还原 mysql
查看>>
一道面试题及扩展
查看>>
Unity 3D 我来了
查看>>
setup elk with docker-compose
查看>>
C++ GUI Qt4学习笔记03
查看>>
Java基础回顾 —反射机制
查看>>
c# 前台js 调用后台代码
查看>>
2017-02-20 可编辑div中如何在光标位置添加内容
查看>>
$.ajax()方法详解
查看>>
jquery操作select(增加,删除,清空)
查看>>
Sublimetext3安装Emmet插件步骤
查看>>