Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Android移动平台上为unity使用Playerprefs_C#_Unity3d_Game Engine - Fatal编程技术网

C# 在Android移动平台上为unity使用Playerprefs

C# 在Android移动平台上为unity使用Playerprefs,c#,unity3d,game-engine,C#,Unity3d,Game Engine,我有一个关于我的android手机游戏的playerprefs没有正确初始化的问题。我已经在一个值为3的变量上预先设置了playerprefs数据。在我对unity的播放模式中,该值通过我编写脚本的textmesh显示为3。但当我在android移动设备上安装并测试它时,它是0。有人能帮助我在android平台上将playerprefs数据正确初始化为正确的值吗 只有在按M键或R键(在调试方法中)时,才能设置PlayerReference 如果希望该值具有默认值,则应将其添加到Start()

我有一个关于我的android手机游戏的playerprefs没有正确初始化的问题。我已经在一个值为3的变量上预先设置了playerprefs数据。在我对unity的播放模式中,该值通过我编写脚本的textmesh显示为3。但当我在android移动设备上安装并测试它时,它是0。有人能帮助我在android平台上将playerprefs数据正确初始化为正确的值吗



只有在按M键或R键(在调试方法中)时,才能设置PlayerReference

如果希望该值具有默认值,则应将其添加到
Start()

有点像

void Start()
{

    // Set the MAxAntiBody to 3 if the value was never set to an initial value
    if(PlayerPrefs.GetInt("MaxAntiBody") == default(int))        
        PlayerPrefs.SetInt("MaxAntiBody", 3);

    ...

}
编辑:正如评论中指出的,您还可以执行以下操作:

var x = PlayerPrefs.GetInt("MaxAntiBody", 3);
返回与首选项文件中的键(如果存在)对应的值。如果它不存在,它将返回defaultValue


如果
GetInt()。这取决于
GetInt(string,int)
的实现,如果不存在,我不确定是否会创建密钥。

快速提醒;PlayerPref存储在设备上,因此您在windows编辑器中所做的更改将存储到磁盘上的某个文件夹中。您的android设备将没有该文件-因此每个环境的更改都是唯一的抱歉。这是我的错。但是为什么不
PlayerPrefs.GetInt(键,默认值)相反?
默认值(int)
只是编写
0
的漫长过程,即不保证未设置此值before@AndrewŁukasik好吧,无论如何,谢谢你试图澄清这一点!:)。无论您是使用
default(int)
还是
0
,这都只是一点味道。我不认为使用这两种方法都是有害的。我个人在本例中使用了
default(int)
,因为我想让读者知道我是在与默认值进行比较,而不是与值(0)进行比较。它增加了一些可读性,我立即了解到我正在以默认值进行比较,因此我可以更快地知道我在做什么。至于
PlayerPrefs.GetInt(string,int)
。我个人不认为两者都值得投反对票。
var x = PlayerPrefs.GetInt("MaxAntiBody", 3);