Unity - 在游戏中保存进度?
Unity - Save Progress In Game?
您好,我正在使用 Unity3d 创建一个小游戏。但是现在我无法保存一些变量。现在我使用下面的代码
void Awake(){
proiettili = PlayerPrefs.GetFloat ("PallottoleOgniSecondo");
}
void OnApplicationQuit(){
PlayerPrefs.SetFloat ("PallottoleOgniSecondo", proiettili);
PlayerPrefs.Save();
}
这样我可以保存变量,但只有当我尝试 unity 时,如果我尝试在 Android 上不起作用。
你知道我该如何解决吗?
对于名为 MyClass
的示例 class,这就是您的做法
using UnityEngine;
using System.Collections;
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
[Serializable]
public class MyClass {
public int myInt;
public void Save(){
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create (FilePath());
bf.Serialize(file, this);
file.Close();
}
public void Load(){
if(File.Exists(FilePath())){
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(FilePath(), FileMode.Open);
MyClass loaded = bf.Deserialize(file) as Brochure;
myInt = loaded.myInt;
}
}
static string FilePath()
{
return Application.persistentDataPath + "/myClass.dat";
}
}
你应该这样试试
PlayerPrefs.SetInt("score",ScoreManager.score);
PlayerPrefs.Save();
score=PlayerPrefs.GetInt("score");
我已经在我的 Web 和 WebGL 构建项目中尝试过这个,如果你需要了解序列化,我可以给你一个例子
检查您对 Android 项目的权限,如果您添加了 "android.permission.WRITE_EXTERNAL_STORAGE"。
您好,我正在使用 Unity3d 创建一个小游戏。但是现在我无法保存一些变量。现在我使用下面的代码
void Awake(){
proiettili = PlayerPrefs.GetFloat ("PallottoleOgniSecondo");
}
void OnApplicationQuit(){
PlayerPrefs.SetFloat ("PallottoleOgniSecondo", proiettili);
PlayerPrefs.Save();
}
这样我可以保存变量,但只有当我尝试 unity 时,如果我尝试在 Android 上不起作用。 你知道我该如何解决吗?
对于名为 MyClass
的示例 class,这就是您的做法using UnityEngine;
using System.Collections;
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
[Serializable]
public class MyClass {
public int myInt;
public void Save(){
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create (FilePath());
bf.Serialize(file, this);
file.Close();
}
public void Load(){
if(File.Exists(FilePath())){
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(FilePath(), FileMode.Open);
MyClass loaded = bf.Deserialize(file) as Brochure;
myInt = loaded.myInt;
}
}
static string FilePath()
{
return Application.persistentDataPath + "/myClass.dat";
}
}
你应该这样试试
PlayerPrefs.SetInt("score",ScoreManager.score);
PlayerPrefs.Save();
score=PlayerPrefs.GetInt("score");
我已经在我的 Web 和 WebGL 构建项目中尝试过这个,如果你需要了解序列化,我可以给你一个例子
检查您对 Android 项目的权限,如果您添加了 "android.permission.WRITE_EXTERNAL_STORAGE"。