您的位置:首页 > 移动开发 > Unity3D

Unity界面跳转iOS原生界面

2018-01-01 15:58 676 查看
实现Unity界面跳转到iOS界面功能:

第一步,创建C#脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;
using UnityEngine.UI;

public class TestJumpToiOS : MonoBehaviour {

[DllImport("__Internal")]
private static extern void UnityJumpToiOS();

public void JumpToiOSButton()
{
this.GetComponentInChildren<Text>().text ="跳转ios界面";
UnityJumpToiOS();
Debug.Log ("跳转到iOS------");
}
}


第二步,导出Xcode工程,在UnityAppController.mm文件里做相应的修改,
首先,添加控制器

@interface UnityAppController ()
@property (nonatomic, strong) UIViewController *vc;
@end

然后设置iOS界面

- (void)setupiOS
{
UIViewController *vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor whiteColor];
vc.view.frame = [UIScreen mainScreen].bounds;

UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 180, 30)];
btn.backgroundColor = [UIColor whiteColor];
[btn setTitle:@"跳转到Unity界面" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(setupUnity) forControlEvents:UIControlEventTouchUpInside];
[vc.view addSubview:btn];
self.vc = vc;
NSLog(@"设置界面为IOS界面");
self.window.rootViewController = vc;
}


设置Unity界面
-(void)setupUnity
{
// 设置Unity状态为开启状态
UnityPause(false);
// 设置rootViewController为Unity的跟控制器
self.window.rootViewController = self.rootViewController;
NSLog(@"设置rootView为Unity界面");
}


设置跳转iOS界面
extern "C" void TestUnityJumpToiOS()
{
UnityPause(true);
// GetAppController()获取appController,相当于self
[GetAppController() setupIOS];
// 点击按钮后跳转到iOS界面,设置界面为iOS界面
GetAppController().window.rootViewController = GetAppController().vc;
}


项目源码下载地址:http://download.csdn.net/download/elegentbeauty/10183095
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: