以下顺带讲一下写入数据的办法。
(不好意思我用的是JS,语法上转换一下就行了。)
不用playerprefs的方法是:
新建一个类,这个类里面定义你要储存在磁盘上的变量,最后把这个类写碧凳做成*.dat文件(binary文件),这样这个类里的数据就写在磁盘上了,以后你就可以随时调取、更新所存储的数据了。
(1)编程时你要用到几个基本的包:
import System;
import System.Runtime.Serialization.Formatters.Binary//用来写binary文件
import System.IO//基本的输入输出
详细的你还可以去查.net 的MSDN 参考。
(2)你要自定义一个类用来规定数据,比如:
Class GameData {
var itemID:int
var power:float
}
(3)你还需要一个实例化的脚本(比如命名成,GameDataManager ),把这个脚本放在一个场景中GameObject上就可以了,这个脚本用粗燃来实际 *** 作读取和写入。把这个类做成一个Singleton,就是说仅在整个游戏刚启动时初始化一个静态的实例,而且在此后的场景退出时都不要清除,这样可以避免反复覆盖读取和存储数据的风险。比如:
static var instance:GameDataManager
Awake() {
if(instance == null){ //当前场景中没有其他实例化的脚本,
DontDestroyOnLoad(gameObject)//那么说现在本脚本是唯一的实例,所以不要销毁
instance = this//把唯一的静态指针指向自己。
}else if(instance != this){
Destroy(gameObject)//当前场景中已经有了其它实例!说本脚本是重复的实例,销毁!
}
}
(4)接下来要判断是否已经存在先前的存档binary文件,如悔衡果没有,就需要初始化一个GameData类。
var myGameData:GameData
function Start () {
myGameData= Load()//此处Load()是脚本后面定义的一个读取binary文件.Dat的方法
if(myGameData== null){ // 如果没有读取到文件,就初始化一个新的数据类
myGameData= new GameData()
myGameData.power= 999// 数据初始化,这里你可以自定义更复杂的方法或算法
Save()//写入数据,此处Save()也是后面定义的一个存储binary文件.Dat的方法
}
}
(5)具体完成Load() 和 Save()方法:
function Save (){
var bFile:BinaryFormatter
var file:FileStream
bFile = new BinaryFormatter()
file = File.Create(Application.persistentDataPath + "/GameData.dat")//在系统默认应用程序路径创建.Dat文件
bFile.Serialize(file, currentGameData)// 写入数据
file.Close()//完成文件
}
function Load ():GameData{
var bFile:BinaryFormatter
var file:FileStream
var loadData:GameData
if(File.Exists(Application.persistentDataPath + "/GameData.dat")){//判断.dat文件是否存在
bFile = new BinaryFormatter()
file = File.Open(Application.persistentDataPath +"/GameData.dat", FileMode.Open)//打开系统默认路径中的.Dat文件
loadData = bFile.Deserialize(file) as GameData//获取读取到的数据
file.Close()//关闭文件
}
return loadData//返回获取到的数据类
}
最后,如果你英文过的去,unity的官方网站上有全套视频,其中一个章节就是讲解如何存储数据的!不过前提是你得会 夫安 七一昂,否则视频可能看不了。今年封的更严了,国情你懂的,
DAT大多数情况下,.dat文件是程序使用的数据,它只是开发者为了清楚文件的意思而自己定义的,也可以命名成别的扩展名!拦雀
你可以用任何编辑工具新建文件,将其命名为.dat。
所以,.dat文件的打开工具也不一样,比如,有些其实是文本文件,只是将扩展名改写成.dat,就可以用文本编辑工具打开;最常见的简握早还有皮宏VCD影音文件。
一般来说,这些文件不是由用户直接使用的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)