unity3D与iOS原生工程项目合并以及合并过程中的问题

由于公司项目的需要,需要将unity3D工程跟原生工程合并, 所以不得不接触unity3D, 本文是将unity3D导出的iOS代码移植到Xcode本地建的工程中, 上代码:

首先,总体来说,总的步骤分为两大块, 第一,你需要从unity3D中导出Xcode第二,你需要将导出的iOS代码部分移植到你想要的本地iOS项目中.

第一部分, unity3D导出Xcode项目

1.打开你的unity工程,然后点击上边菜单栏file中的build settings

1.png

2. 接着会弹出一个如下的框, 点击switch platform 选择iOS平台,

3. 点击player settings... 配置参数如下图

4. 配置完成后点击build, 等待完成,这个过程可能会时间长点,稍安勿躁, 完成之后是这样的

5.然后打开文件iOS文件夹是这样的,我们需要的重要核心的代码都在画红线的这几个文件夹中,所以,我们下面就需要把这几个画红线的文件夹拷贝到我们需要的iOS原生项目中.

第一部分导出Xcode工程已经完成,这部分很简单, 接着,我们就开始第二大部分,也是很容易出错的地方,尤其是配置需要注意.

第二部分, unity3D导出Xcode项目导入到原生的iOS项目中

1.Unity导出的工程中的bundleId要和你本地iOS项目的id一致

2.修改bit code为NO

3.删除Main.storyboard,代码设置控制器(方便切换window)

4.将Classes,Libraries,MapFileParser.sh拖入到项目(选中Copy items if needed,选中Create groups)

将Data拖入到项目(选中Copy items if needed,选中Create folder references)

注意:文件拖进工程的方式不完全一样,注意勾选的地方

5.添加framework(注意Optional的三个)

6.添加Header Search Paths和Library Search Paths

7.other C Flags -> -DINIT_SCRIPTING_BACKEND=1

8.添加User-Defined (UNITY_RUNTIME_VERSION版本号与导出工程的Unity版本号需要一致)


9.添加Run Script


10.把Unity/Classes/Prefix.pch的代码复制到新建的pct文件, 并把classes文件夹下的pct文件删除,注意,这里的删除并不是彻底的删除, 而是从列表中删除,选择中间这个, 以下步骤中所说的删除都是这个意思,请牢记哈!

11. 将Classes/main.mm全部内容复制到main.m 并把扩展名改为.mm

12. 修改UnityAppController.h

13.在AppDelegate.h .m中添加如下代码


到这里基本上已经完成从本地iOS跳转到Unity项目里了,接下来,是我在做的过程中遇到的问题.

1.Unknown type name 'UnityViewControllerBase'

解决办法就是把它改成UIViewController


2.iOS本地应用跳转unity的时候出现黑屏

原因是你的u3d工程集成了EasyAR插件,而这个插件下有个Assets/Plugins/iOS/EasyARAppController.mm,

@interface EasyARAppController : UnityAppController,这是整个app启动时的第一个controller,自己修改合并这个controller就OK了

或者是将EasyARAppController.mm的内容复制到你的自定义的子类中去,然后删除引用也是OK的

看下图

在UnityAppController.mm里这个方法中写

然后就OK了

以上就是全部了呦,欢迎大家指正, 多多交流!!!

// 转载请注明原地址呦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最近在实验室做了一个项目,用到了蓝牙通讯和U3D的交互,都有很多坑,如:IOS与Unity3D界面之间的跳转...
    Larrycal阅读 23,714评论 34 53
  • 提示:2017年7月13日更新 相关文章:1>. Unity中文社区2>. IL2CPP 构建大小优化 前言:项目...
    小熊翻译App阅读 7,438评论 24 23
  • 图文/王天鸿 四月二十三日! 这个被从日历上圈定并命名的日子,与其说是用来读书的日子,毋宁说是对书籍、阅读、...
    王天鴻阅读 689评论 2 2
  • 下午在微信朋友圈看到这样一则感慨: 其实我是很认可这位朋友的说法的,就像十年前俞敏洪在《赢在中国》中的一段话,现在...
    8c8392d58a4a阅读 504评论 0 0
  • 今年我二十四五岁,身处最基层,只为了初心而常常没日没夜加班加点。入夏,每当看到路上的姑娘们打扮得一个个像小仙女...
    冬月初十阅读 209评论 0 1