2017-04-07 54 views
1

在无关的程序中,我向寄存器写入一个字符串,然后在Unity中我想读取它。从寄存器读取Unity 3d

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"); 

统一保存的参数相同的位置,我从外部应用程序的第一线,但到parames的名称,它增加了类似的东西"h1351336811"。并且注册表中的参数名称由"serverURL_test_h1351336811"获取。

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

这个问题怎么解决?

回答

2

如果您想使用Unity的获取值的方式,使用Unity保存值的方式是一个不错的主意。该PlayerPrefs

存储在在HKCU \软件[公司名称] [产品名称]键,其中公司和产品名称是项目设置中设置的名称注册表。

如果你不想使用这个,并且想使用RegistryKey来设置值,你应该使用RegistryKey来获取值;不要将Unity的PlayerPrefs与.NET自定义设置的注册表键值混合使用。

尝试RegistryKey.GetValue