另一个答案可能是Unity中有任何类型的钩子对应于这些事件:
我可以在Unity中使用iOS的NSNotificationCenter吗?怎么样?我用谷歌搜索了一段时间但发现为零。
答案 0 :(得分:0)
我认为这就是答案:http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnApplicationFocus.html
OnApplicationFocus
但是,它至少在iOS上不起作用。似乎它是一个错误,将在Unity 4.6.1中修复...我使用4.6(4.6.0f3)
http://issuetracker.unity3d.com/issues/monobehaviour-dot-onapplicationfocus-not-supported-on-ios
答案 1 :(得分:0)
听起来你真正想要的是在调用一些委托方法时得到通知。为此,您可以编辑AppDelegate.m文件并添加一行代码,将消息传递回Unity游戏。我可以在这里给你一个通用的方法。
首先在根场景中创建一个GameObject,并附加一个脚本,其中包含您要调用的方法以及对DontDestroyOnLoad()
的调用。同时在层次结构中为其提供一个您将在稍后需要的名称,例如 AppDelegateProxy 。
void Start() {
DontDestroyOnLoad();
}
public void ApplicationWillResignActive(string message) {
// Do whatever you want here, e.g. fire an event
}
接下来,在您应用的AppDelegate.m文件中,编辑您要传递给Unity的相关方法:
-(void)applicationWillResignActive:(UIApplication *)application {
// Notify your game object that this event occurred
UnitySendMessage("AppDelegateProxy", "ApplicationWillResignActive", "whatever you want here");
}
还有其他方法可以执行您想要的操作,但这是一种通用方法,可让您回复iOS应用中您想要的任何内容。您也可以使用此功能将通知也传递到应用程序中。只需在AppDelegate中设置一个监听器,并将通知传递给持久GameObject中的方法。