将播放器信息保存在外部文件中

Aka*_*ari 2 unity-game-engine unityscript

这是我在团结世界中第一次测试2d游戏中的主菜单:

在此输入图像描述

我想保存高分,如果玩家按下"最佳分数"按钮我想给他们显示最好的分数^^,所以我想我需要使用外部文件来保存这类信息并在运行时打开它时间......怎么样?哪种文件最适合执行?

100*_*101 7

除了上面的答案:

但是,除非将这些类型转换为字符串或其他数据,否则PlayerPrefs不会处理和存储自定义类型和集合.将所需数据转换为JSON并将JSON字符串存储在PlayerPrefs中非常有用,然后在需要时再获取并解析该数据.这样做会增加另一层复杂性,但也会增加另一层保护和加密数据本身的能力.此外,根据Unity的文档,Web Player是目前唯一对PlayerPrefs有限制的平台:

每个Web播放器URL有一个首选项文件,文件大小限制为1兆字节.如果超出此限制,SetInt,SetFloat和SetString将不会存储该值并抛出PlayerPrefsException.

资料来源:http: //docs.unity3d.com/Documentation/ScriptReference/PlayerPrefs.html


Uto*_*pia 6

写作:

PlayerPrefs.SetInt("score",5);
PlayerPrefs.SetFloat("volume",0.6f);
PlayerPrefs.SetString("username","John Doe");

// Saving a boolean value
bool val = true;
PlayerPrefs.SetInt("PropName", val ? 1 : 0);


PlayerPrefs.Save();
Run Code Online (Sandbox Code Playgroud)

读:

int score = PlayerPrefs.GetInt("score");
float volume = PlayerPrefs.GetFloat("volume");
string player = PlayerPrefs.GetString("username");

bool val = PlayerPrefs.GetInt("PropName") == 1 ? true : false;
Run Code Online (Sandbox Code Playgroud)


Hei*_*bug 5

最简单的解决方案是使用PlayerPrefs.它具有有限的空间和一小部分可以保存的数据(int,float,string),但它对于简单的游戏来说已经足够了.

如果需要保存更多空间或更复杂的数据结构,则必须将它们存储在文件系统本身上(如果有后端支持,则存储在服务器中).Unity不为此提供任何内置支持.