位置: 编程技术 - 正文

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)

  • 已抵扣进项税额转出怎么申报
  • 什么是办税员编号
  • 小规模公司的外汇业务
  • 在建工程明细账采用什么账簿
  • 发票专用章章号是什么
  • 不得抵扣的进项税额转出会计分录
  • 建筑工人的工资应该怎样支付
  • 固定资产减值必有损益吗
  • 合并财务报表内部固定资产交易的抵消
  • 公司注销前的发言怎么写
  • 应付账款坏账处理分录怎么写
  • 客户预付货款会计分录
  • 未计提企业所得税怎么写分录
  • 进口缴纳关税
  • 留抵税额注销时,会计分录
  • 香港公司在大陆设立子公司
  • 盈余公积什么时候提取
  • 城市垃圾处理费怎么申报
  • 产品售后服务规定
  • 软件企业怎么享受三免两减半
  • 二手车抵押银行贷款
  • 持有至到期投资在资产负债表怎么填
  • 工程费用包括哪几类
  • 因腐败因素形成的损失企业所得税如何处理?
  • 按年缴纳年金的企业缴费部分,应按照全年一次性奖金
  • 股权激励取消怎么处理?
  • 汇算清缴的租赁费怎么算
  • linux怎么翻译
  • qctray.exe - qctray进程 是什么文件 作用是什么
  • 利率怎么算的计算方
  • 即征即退申报表如何填写
  • 成本转入费用
  • 无法连接到移动网络小米
  • PHP:oci_field_scale()的用法_Oracle函数
  • 资产收购的账务处理
  • php如何删除数组元素
  • 购买了金税盘以后怎么使用
  • html下划线怎么设置
  • 消耗品算什么科目
  • 稽查补缴以前年度的社保
  • 资产总额怎么计算公式
  • php面试知识点
  • 支付版权费用账号是什么
  • 进项大于销项怎么结转增值税
  • python线程和协程
  • 交易性金融资产是什么意思
  • 扶贫资金是如何发放的
  • 账面成本与账面余额
  • java实现打印
  • 承典人是什么意思
  • 减免所得税额是自动计算吗
  • 房产税应纳税额计算例题
  • 劳务报酬支出怎么算
  • 金税盘锁死341101
  • 营改增后哪些费用可以抵扣
  • 农产品收购发票如何抵扣进项税
  • 公司章程上的出资额怎么填
  • 企业什么时候才需要交税
  • 案例分析应收账款管理存在的问题
  • 增值税购进扣税法
  • 航天信息服务费280元如何申报
  • 商用计算机英文
  • 跨网段加入域配置
  • 电脑xp系统运行速度慢
  • macos 怎么用
  • 进程process.acore已停止怎么办
  • windows7的使用方法
  • ps是什么文件
  • debian linux教程
  • bat ftp上传文件
  • android项目总结
  • 项目总结之触摸问题分析
  • vue中使用ajax
  • android Lollipop(5.0)--touch feedback(触摸反馈)
  • js如何使用
  • jquery .html的用法
  • jquery选择器大全
  • 汽车发票包含增值税吗
  • 地税局 要官
  • 资源税的税目共有七个其中包括
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设