使用的是iOS的NSNotificationCenter或类似事件的应用程序事件的备选答案可能是,如果有任何一种对应于这些事件在Unity挂钩:在Unity
- UIApplicationWillResignActiveNotification
- UIApplicationDidBecomeActiveNotification
我可以在Unity中使用iOS的NSNotificationCenter吗?怎么样?我搜索了一段时间,但发现零。
使用的是iOS的NSNotificationCenter或类似事件的应用程序事件的备选答案可能是,如果有任何一种对应于这些事件在Unity挂钩:在Unity
我可以在Unity中使用iOS的NSNotificationCenter吗?怎么样?我搜索了一段时间,但发现零。
我想这就是答案: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
这听起来像你真正想要的是得到通知时,少数人委托方法被调用。为此,您可以编辑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文件,编辑要一起团结通过相关方法:
-(void)applicationWillResignActive:(UIApplication *)application {
// Notify your game object that this event occurred
UnitySendMessage("AppDelegateProxy", "ApplicationWillResignActive", "whatever you want here");
}
还有其他的方法可以做到你想要什么,但是这是一个一般的方法,可以让你响应iOS应用程序中任何你想要的东西。您也可以使用这个通知将通知传递到应用程序中。只需在AppDelegate中设置一个监听器,并将通知传递给持久化GameObject中的方法即可。