如何在 Unity 中从 sdcard 中 write/read 一个 txt 文件?
How to write/read a txt file from sdcard in Unity?
我是Unity的新手。我有这样的问题。
我的游戏得分很高,我想将它保存到移动设备上的文本文件中。在这种情况下,我想将该文本文件保存到我的 SD 卡中,但我不知道如何保存。
下面的代码显示了它如何读取和写入文件。它在我的电脑上运行良好,但在模拟器或真实移动设备上运行不佳。
我认为它对目录感到困惑。
void writeHighScore() {
string path = "\sdcard\colorbounce\highscore.txt";
int highscore = 0;
// This text is added only once to the file.
if (!File.Exists(path))
{
System.IO.Directory.CreateDirectory("\sdcard\colorbounce\");
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine(score);
}
}
// Open the file to read from.
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
highscore = int.Parse(s);
}
}
if (score > highscore) {
// This text is always added, making the file longer over time
// if it is not deleted.
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(highscore);
}
}
highScoreText.text = highscore.ToString ();
}
请帮我解决这个问题。
谢谢
考虑使用 PlayerPrefs 保存您的高分,例如:
PlayerPrefs.SetInt("Player Score", 10);
更新:Application.persistentDataPath属性如果要存一些数据到SD卡,这样最安全
PlayerPrefs 可能是保存高分的更好选择,但如果您希望保存到文件,那么您可能希望在调试应用程序时使用 Logcat,因为它可能会准确地喷出有用的错误为什么它无法 access/write 到您的位置。
一些提示:
您需要确保您的应用程序具有写入外部权限。没有它,Android不会让你写入SD卡。
您需要确保设备中确实有 SD 卡。您可能需要检查您的模拟器以确保它也是您的模拟器支持的功能。
访问路径时,在处理 Android.
时需要 file:// uri
我是Unity的新手。我有这样的问题。
我的游戏得分很高,我想将它保存到移动设备上的文本文件中。在这种情况下,我想将该文本文件保存到我的 SD 卡中,但我不知道如何保存。
下面的代码显示了它如何读取和写入文件。它在我的电脑上运行良好,但在模拟器或真实移动设备上运行不佳。
我认为它对目录感到困惑。
void writeHighScore() {
string path = "\sdcard\colorbounce\highscore.txt";
int highscore = 0;
// This text is added only once to the file.
if (!File.Exists(path))
{
System.IO.Directory.CreateDirectory("\sdcard\colorbounce\");
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine(score);
}
}
// Open the file to read from.
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
highscore = int.Parse(s);
}
}
if (score > highscore) {
// This text is always added, making the file longer over time
// if it is not deleted.
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(highscore);
}
}
highScoreText.text = highscore.ToString ();
}
请帮我解决这个问题。 谢谢
考虑使用 PlayerPrefs 保存您的高分,例如:
PlayerPrefs.SetInt("Player Score", 10);
更新:Application.persistentDataPath属性如果要存一些数据到SD卡,这样最安全
PlayerPrefs 可能是保存高分的更好选择,但如果您希望保存到文件,那么您可能希望在调试应用程序时使用 Logcat,因为它可能会准确地喷出有用的错误为什么它无法 access/write 到您的位置。
一些提示:
您需要确保您的应用程序具有写入外部权限。没有它,Android不会让你写入SD卡。
您需要确保设备中确实有 SD 卡。您可能需要检查您的模拟器以确保它也是您的模拟器支持的功能。
访问路径时,在处理 Android.
时需要 file:// uri