在无关程序中,我将一个字符串写入寄存器,然后在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"。
如何解决这个问题?
答案 0 :(得分:2)
如果您想使用Unity获取价值的方式,最好使用Unity节省价值的方式。 PlayerPrefs
存储在HKCU \ Software [公司名称] [产品名称]密钥下的注册表中,其中公司和产品名称是在项目设置中设置的名称。
如果您不想使用它并希望使用RegistryKey来设置值,那么您应该使用RegistryKey来获取值;不要将Unity的PlayPref与您自己定制的.NET注册表项混合使用。