2017-04-07 102 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