我需要在Unity和Android之间传递一些键值对。我知道我可以使用插件执行此操作,例如:Using shared preferences between unity and native android sdk
令人惊讶的是,我的同事(他在iOS上做同样的事情)告诉我,她可以使用NSUserDefaults
和PlayerPrefs
轻松完成此操作。
所以我尝试在Unity端写入键值:
PlayerPrefs.SetString("Location","tw");
并使用SharedPreferences
在Android端阅读:
SharedPreferences sharedPref = activity.getPreferences(Context.MODE_PRIVATE);
Location = sharedPref.getString("Location", null);
但我一无所获,我做错了吗?
或者是否有另一种在Android上使用的工具与NSUserDefaults
和PlayerPrefs
映射效果相同?
答案 0 :(得分:2)
Nailed it
根据http://forum.unity3d.com/threads/what-is-default-shared-preference-name.66579/
应该使用
SharedPreferences packagePrefs = context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
答案 1 :(得分:0)
在更高版本的 Unity 中,您可能需要将 .v2.playerprefs
添加到 Android 包名称。
所以:
SharedPreferences unityPrefs = context.getSharedPreferences(context.getPackageName() + ".v2.playerprefs", Context.MODE_PRIVATE);