位置: 编程技术 - 正文

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)

  • 车船税是每个月交还是每年交
  • 居民和非居民企业的概念
  • 销售货物和服务流程 事前检查单上
  • 开票就必须要交个税吗
  • 生产成本结转主营业务成本本币公式怎么弄
  • 增值税零申报触发附加税零申报
  • 企业可以采用多品牌战略吗
  • 建筑行业简易计税账务处理
  • 发生销售退回如何开票
  • 12月了还没找到工作怎么办
  • 给非企业员工佣金怎么交税
  • 没有收入是否可以入党
  • 小企业收到下列票据后,银行存款账户不变的是
  • 个体工商户上月开发票超额了 ,定额改查账征收了
  • 发票认证了但是没记账
  • 物业公司开停车位费全电发票
  • 合伙企业如何计算缴纳个人所得税
  • 餐饮行业月营业额怎么算
  • 购买的商品入库会计分录怎么写
  • 房地产开发企业取得的土地使用权用于建造
  • 居民企业清算企业所得税
  • 子公司搭建
  • 汽车行业销售折让
  • 第三方派遣劳务不续签补偿金哪边出
  • 涉及农业的税收优惠有哪些
  • 开机提示lsass应用程序出错
  • 同一年可以先娶后嫁吗
  • php的数组函数
  • PHP:pg_result_error()的用法_PostgreSQL函数
  • vueajax请求的五个步骤
  • 用盈余公积弥补以前年度亏损
  • 划转国有划拨土地流程
  • avoid什么用法
  • vue 百度地图 移动端
  • 出售银行承兑汇票
  • 社保缴费基数差1000一般差多少?
  • 已确认的发票如何入账
  • 35.JavaScript对象和数组的解构赋值基础详解、let陷阱、函数参数解构
  • 合并的命令
  • 支付宝服务窗支付是啥
  • 房地产开发企业会计制度
  • 印花税调低
  • 100万的工程怎么开发票
  • 促销服务费分录
  • ps调色的作用
  • 退诉讼费计入什么科目
  • 公司代买社保怎么收费
  • c语言f lf
  • 汽油费入什么会计分录
  • 对于企业处理废水的建议
  • 办税人员可绑定银行卡吗
  • 固定资产核算应包括什么
  • 无票收入会计分录实例
  • 小微企业是怎样自己认定的呢
  • 银行汇票退票
  • 营业外收入如何纳税
  • 应记入营业外支出的科目核算是
  • 以他人名义投资该签订什么协议
  • 银行公司账户限额
  • 装修公司开劳务发票会被罚款吗
  • 专利年费可以减免吗
  • 苹果电脑安全性
  • 删除windows用户密码
  • linux安装syslog
  • 电脑系统怎么设置字体大小
  • 笔记本xp无线网络连接禁用启用不了
  • linux升级内核要重启吗
  • win10开机蓝屏提示修复
  • win7系统IE浏览器一点就闪退
  • linux k
  • 动画时期
  • python如何不换行
  • 右键隐藏在哪
  • Android 获取网络时间
  • python可变参数和不可变参数
  • jquery正则表达式的用法
  • Linux 中的 lo:0
  • 深入理解javascript
  • ADB not responding. You can wait more,or kill"abd.exe" process manually and click 'Restar
  • 个人所得税申报怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设