Unity 小案例 加载新场景时数据持久化简单存储
来源:互联网 发布:当代网络小说家排行榜 编辑:程序博客网 时间:2024/05/17 00:18
这篇博客要实现的目标是,在第一个场景输入一些信息,然后加载第二个场景,同时能够把前面输入的数据加载进来。
新建一个2D项目,利用 InputField 和 Button 控件做出如下界面。
这需要我们填写姓名和密码,然后点击提交,跳转场景。
注意,填写密码的输入框要改成这样
给按钮添加一个名为 BtnSubmit 的脚本,编辑如下:
using UnityEngine;using UnityEngine.UI;using UnityEngine.SceneManagement;using System.Collections;public class BtnSubmit : MonoBehaviour {//获取输入框控件 public InputField inputName; public InputField inputPWD; //点击监听事件 public void SaveContent () { //以键值对方式存值 PlayerPrefs.SetString("name", inputName.text); PlayerPrefs.SetInt("pwd", int.Parse(inputPWD.text)); //根据名字加载场景 SceneManager.LoadScene("PlayerPrefs2"); }}
这里需要注意两点,1:密码设置的是整型(当然也可以设置成其他类型) 2:加载的第二个场景名为 PlayerPrefs2。所以我们在新建一个场景,名为PlayerPrefs2。利用Text 控件和 Button控件制作出如下界面:
Text中什么都不填写,因为要赋值进去。给摄像机添加一个名为 SetText 的脚本,并编辑:
using UnityEngine;using UnityEngine.UI;using System.Collections;public class SetText : MonoBehaviour {//得到两个文控件 public Text names; public Text pwd; // Use this for initialization void Start () { //根据键 取值,如果没有值,就赋上后面的默认值,也可以没有默认值 names.text = PlayerPrefs.GetString("name", "default"); pwd.text = PlayerPrefs.GetInt("pwd", 9).ToString(); }}
这只不过是给文本赋值的操作而已,我们还需要返回到上一个场景,所以,给按钮添加一个名为 Clear 的脚本,并编辑:
using UnityEngine;using UnityEngine.SceneManagement;using System.Collections;public class Clear : MonoBehaviour { public void ClearContent () { //如果存在键 name if (PlayerPrefs.HasKey("name")) { //删除键 name PlayerPrefs.DeleteKey("name"); } //也可以直接删除所有键 PlayerPrefs.DeleteAll(); //返回上一个场景 SceneManager.LoadScene("PlayerPrefs"); }}
现在打开第一个场景然后运行就行了吗?
当然不行!!为什么??因为我运行过了,会报错!!
这个错误大概意思就是没有加载到第二个场景,也就是 PlayerPrefs2。这是为什么?明明就有这个场景的啊!!
好吧,我们继续读错误日志,后面大概意思说,需要到 Build Setting 中去添加场景。(虽然英语差了一点,但看关键字还是勉强可行的!更何况咱还有百度翻译,金山词典等等!!!)
于是赶紧点击 File —>Build Setting
点击 Add Open Scenes 就可以添加当前场景进去,另外一个场景可以手动拖进去。
然后打开第一个场景,运行程序,
可以看见效果了吧!
项目工程:http://pan.baidu.com/s/1kVF8CZX 密码:dvjf
- Unity 小案例 加载新场景时数据持久化简单存储
- unity3d中切换场景和简单数据持久化存储
- SQLite实现数据持久化存储小案例之购买商品
- Android SQLite实现数据持久化存储购买商品小案例
- SQLite实现数据持久化存储小案例之购买商品
- SQLite实现数据持久化存储小案例之购买商品
- 加载数据小案例
- Unity数据持久化
- 【Unity】数据持久化
- Redis持久化RDB简介及简单数据恢复案例
- 数据持久化存储
- 数据持久化 ( 存储 )
- Unity持久化数据解析
- OC-NSUserDefaults(简单数据持久化存储机制)
- iOS 偏好设置存储简单用法-数据持久化
- 数据存储:数据持久化
- 数据存储---数据持久化
- unity 简单数据存储PlayerPrefs
- 第十二周上机实践项目-项目1-实现复数类中的运算符重载
- ListView显示用户输入记录
- Linux文件系统详解
- 1、asp.net mvc第一章 搭建mvc平台
- 自定义控件
- Unity 小案例 加载新场景时数据持久化简单存储
- Ubuntu虚拟机安装
- 使用C#写入并保存为*.txt和读取数据
- 【多线程-Join()方法】
- WPF 动画按照path路线移动完整
- 一般使用SDWebImage 进行图片的显示和缓存,一般缓存的内容比较多了就需要进行清空缓存
- python基于dlib的face landmarks
- android用户拒绝权限
- tableView 用法细节