我需要在 Unity 和 Android 之间传递一些键值对。我知道我可以使用插件来做到这一点,如下所示:Using Shared Preferences Between Unity and Native Android sdk
令人惊讶的是,我的同事(她在 iOS 上做了同样的事情)告诉我她可以轻松使用NSUserDefaults并PlayerPrefs完成此操作。
所以我尝试在Unity端编写键值:
PlayerPrefs.SetString("Location","tw");
Run Code Online (Sandbox Code Playgroud)
并使用以下命令在 Android 端阅读SharedPreferences:
SharedPreferences sharedPref = activity.getPreferences(Context.MODE_PRIVATE);
Location = sharedPref.getString("Location", null);
Run Code Online (Sandbox Code Playgroud)
但我什么也没得到,我做错了吗?
或者在Android上有其他可以使用NSUserDefaults和PlayerPrefs映射具有相同效果的工具吗?
我试图通过以下函数捕获内存不足异常:
void allocMemory(buffer& thebuf, size_t size)
{
try
{
thebuf = buffer(size); // new char[] here
}
catch(bad_alloc& ex)
{
exception handling... // print some information
exit(1);
}
}
Run Code Online (Sandbox Code Playgroud)
处理应显示一些信息并关闭程序.这在Windows上运行良好,但在Linux上程序只是直接关闭终端上的"Killed".似乎OOM杀手在异常被捕获之前杀死了我的程序.
这是正常的吗?
如何在Linux上捕获内存不足?
PS我正在测试ubuntu 12.04 64位,仅使用4GB内存进行测试,没有交换空间,语言是C++.此外,如果我一次新增大量内存,该功能在Linux上运行.但是,如果我每次都做一点新事(例如:在循环中),程序将最终关闭终端上的"Killed"
任何帮助,将不胜感激.