最近经理分给我一项任务,让在Unity应用上添加高德地图。后来想来想去,还是跳转到iOS原生界面进行操作吧,毕竟Unity跟我不熟.....
要想从Unity跳转到iOS界面,我们首先要有一个按钮吧,这个让Unity工程师去搞吧,反正我依然不会。。。
于是乎,我们工程师给我一个按钮的点击事件,如下所示:
其中 红框框 里面的方法是需要我们iOS实现的,而且上面那句话不要省略!!!
然后的然后,我们把Unity工程导出为Xcode,找到UnityAppController.mm
,并在里面添加代码:
/*
* UnityAppController.mm
*/
@implementation UnityAppController
- (void) startToIOS {
XXViewController *xxVC = [[XXViewController alloc] init];
//跳转之前我们要把Unity暂停,之后我们还要让他恢复
UnityPause(true);
[UnityGetGLViewController() presentViewController:xxVC
animated:YES completion:nil];
}
@end
/*
* 注意:这个实现要写在@end之后
*/
extern "C" {
void _UnityBtnClick() {
UnityAppController *appVC = [[UnityAppController alloc] init];
[appVC startToIOS];
}
}
最后我们就可以在XXViewController.m
里面尽情的挥发了。
当然,不要忘了,在dismiss
的时候把Unity恢复活跃状态
//XXViewController.m
//记得添加↓↓↓↓下面的↓↓↓↓↓这个头文件
#import "UnityInterface.h"
- (void)backUnity {
[self dismissViewControllerAnimated:YES completion:^{
/*
*让Unity从暂停的状态中恢复出来
*如果没有找到这个方法,请添加头文件UnityInterface.h
*/
UnityPause(false);
}];
}