位置: 编程技术 - 正文

Unity 从iOS应用中,启动一个Unity App(unity导出ios项目到iphone)

编辑:rootadmin
从iOS应用中,启动一个Unity App

推荐整理分享Unity 从iOS应用中,启动一个Unity App(unity导出ios项目到iphone),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity导出ios项目到iphone,unity发布到ios,unity导出ios项目到iphone,unity的apply在哪,unity的apply在哪,unity ios framework,unity ios framework,unity 调用ios,内容如对您有帮助,希望把文章链接给更多的朋友!

Start a Unity app from inside a native iOS app

1. 首先,从Unity中将Unity项目导出Xcode工程。(因为Unity生成的工程目录比较麻烦,没有研究,所以从Unity生成工程的基础上进行开发)

2. 生成的Xcode工程包含以下文件。

  其中main.mm文件,是项目的入口文件。

  从代码来看。Unity是使用红色框中的文件(AppController)启动,没有用到蓝色框中的文件。所以我们可以直接使用(iPhone_targer2AppDelegate)

  

3. 修改入口文件,main.mm

  将启动类,由“AppController”改为“NSStringFromClass([iPhone_target2AppDelegate class])”

NSAutoreleasePool * pool = [NSAutoreleasePool new];// UIApplicationMain(argc, argv, nil, @"AppController");UIApplicationMain(argc, argv, nil, NSStringFromClass([iPhone_target2AppDelegateclass]));[pool release];

4. 在“iPhone_target2AppDelegate”中,就可以正常的使用我们iOS项目了。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.window setRootViewController:[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]]; [self.window makeKeyAndVisible]; return YES;}Unity 从iOS应用中,启动一个Unity App(unity导出ios项目到iphone)

5. 接下来就是本文的重点了,怎么启动Unity项目呢。

[[[AppController alloc] init] startUnity:[UIApplication sharedApplication]];

6. 从Unity项目退出,返回iOS项目。在AppController.mm中加入对Unity的响应,代码如下

  这里使用了Unity和Object-C之间的代码交互。详见: "C" { float doExitSelector() { /* // 使用这个代码会导致应用Crash // ReleaseViewHierarchy(); // UnityCleanup(); */ // 所以在这里,使用以下方法:讲Unity暂停,隐藏项目,将iOS项目Window显示 UnityPause(true); _didResignActive = YES; Profiler_UninitProfiler(); [[[UnityGetMainWindow() rootViewController] view] setHidden:YES]; [[[iPhone_target2AppDelegate shareApplicationDelegate] window] makeKeyAndVisible]; return 0.0f; }}

7. 最后注意一点,startUnity方法只能使用一次。多次调用同样会导致应用Crash,并报错:“should not be reached at domain.c”。

  如果需要在Unity和iOS之间多次切换的话,可以在AppController.mm中加入以下方法

- (void)restartUnity { [[[UnityGetMainWindow() rootViewController] view] setHidden:NO]; [UnityGetMainWindow() makeKeyAndVisible]; if (_didResignActive) UnityPause(false); _didResignActive = NO;}

  在需要的地方调用:

- (void)onClickTest:(id)sender { if (appController) { [appController restartUnity]; }else { appController = [[AppController alloc] init]; [appController startUnity:[UIApplication sharedApplication]]; }}

  

PS: 有错轻拍

  开发工具版本:Unity 4.0 Xcode 4.6

分类: Unity

Vuforia学习实践笔记(一) 前言Vuforia增强现实SDK,是高通推出的针对移动设备增强现实应用的软件开发工具包,它能够根据开发者设定的目标对象,例如二维图片、三维模型提取

【Unity_uGUI】如何让ui遮挡点击事件使之不影响3D世界

[Unity3D]Unity中的Time 要求实现动态生成管道,一直没有想到比较好的方法,之前跟着教程做的时候也用到了Time类,这次又详细查了查,总算解决了问题。1.Time.time此帧开始

标签: unity导出ios项目到iphone

本文链接地址:https://www.jiuchutong.com/biancheng/381427.html 转载请保留说明!

上一篇:Unity NGUI Tween的用法

下一篇:【Unity_uGUI】如何让ui遮挡点击事件使之不影响3D世界(unity ugu)

  • 公司全额承担个税怎么申报
  • 建筑劳务公司怎么做账
  • 商贸企业购销混凝土税率怎么选择
  • 什么是本期应纳税所得额
  • 销项减进项余额在哪方
  • 企业所得税季报和年报的区别
  • 城建税借贷方向
  • 样品销售如何记账
  • 品牌对企业收益的影响
  • 如何在房产证上加父母名字
  • 股东分红利息
  • 红字发票的蓝字发票要退回吗
  • 本月做未开票收入,下月开票怎么做账
  • 民间非营利组织会计报表
  • 一次性离职补偿金如何避税
  • 预提返利的会计处理
  • 跨年度冲减收入
  • 如何理解发票开具加税点的说法?
  • 销售型公司进销项时会计分怎么写?
  • 单位报销的发票
  • 付款网站制作
  • u盘写入扇区错误
  • 档案保管期限是写汉字吗?
  • 汇算清缴期业务包括哪些
  • 我想设置应用
  • 开办费的账务处理实例
  • 认缴资本 实收资本
  • 房地产企业将开什么发票
  • 建筑行业怎么做职业生涯规划
  • 笔记本保养技巧和方法
  • 支付给代理机构的手续费计入
  • 海关进口增值税怎么认证抵扣
  • 记账凭证按其用途
  • 建筑行业总分包怎么算
  • 怎么缴销空白发票
  • 小规模与一般纳税人做账区别
  • thinkphp框架作用
  • 玄学2021
  • 微信支付开发步骤
  • PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
  • 如何认识软件测试
  • setdo指令
  • lincom命令
  • 结转完工产品成本的会计分录
  • 个体工商户一年要交多少税
  • 织梦如何给栏目增加缩略图
  • python怎么创建
  • mongodb聚合统计数量
  • mongodb计数
  • 给客户的现金奖励会计处理
  • 代扣代缴个人所得税奖励金
  • 金蝶可以自动结账吗
  • 金税盘一天可以开多少张发票
  • 开发票该怎么操作?
  • 建筑行业旧项目怎么处理
  • 工程预付税金如何计算
  • 未入账负债怎么算
  • 计提的工会经费年底有余额咋处理
  • 上年度固定资产费用化了,财报怎么算
  • 未开票收入怎么填写增值税申报表
  • 解除非正常户罚款调整操作
  • 请问购买
  • mysql忘记了初始密码
  • Win7旗舰版系统安装
  • xp电脑启动项怎么设置启动项
  • linux 中find
  • linux find 命令详解
  • win8.1怎么用
  • win8开机进不了桌面
  • 电脑开机后出现win7画面后一直黑屏
  • win10触屏操作
  • 搭建maven开发环境
  • python线程启动和暂停
  • numpy体会
  • 编写python程序的步骤
  • jquery 遍历
  • 国际货运怎么代理
  • 北京国税办税服务厅
  • 5种方式教你如何查询
  • 非中山户籍学生可以自己买医保吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设