从寄存器Unity 3d中读取

时间:2017-04-07 14:22:43

标签: c# unity3d registry unity5

在无关程序中,我将一个字符串写入寄存器,然后在Unity中我想读它。

    RegistryKey saveServerURL = Registry.CurrentUser.CreateSubKey("Software\\zRirez\\RF");
    saveServerURL.SetValue("serverURL", serverURL);
    saveServerURL.Close();

但是该单位无法读取此参数。

serverURL = PlayerPrefs.GetString("serverURL");

找不到他。 我测试了它,在单元本身我创建并保存了参数,一切正常。

    PlayerPrefs.SetString("serverURL_test", "something");
    serverURL2 = PlayerPrefs.GetString("serverURL_test");

Unity将参数保存到与外部应用程序的第一行相同的位置,但是参数名称添加了类似"h1351336811"的内容。注册表中的参数名称由"serverURL_test_h1351336811"获得。

我怀疑是因为这样,单位无法在寄存器中找到另一个应用程序中的第一个参数,因为它正在寻找" serverURL" +" h1351332311" (类似这样的)而不是" serverURL"。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果您想使用Unity获取价值的方式,最好使用Unity节省价值的方式。 PlayerPrefs

  

存储在HKCU \ Software [公司名称] [产品名称]密钥下的注册表中,其中公司和产品名称是在项目设置中设置的名称。

如果您不想使用它并希望使用RegistryKey来设置值,那么您应该使用RegistryKey来获取值;不要将Unity的PlayPref与您自己定制的.NET注册表项混合使用。

尝试RegistryKey.GetValue