一、Unity 3D导出iOS项目

  • 将Unity3D 导出 iOS的项目
    • 详细步骤…
    • 导出目录

      Unity导出iOS目录
  • 注)U3D的所有相关设置,都在U3D这边设置,设置好后导出iOS项目

二、将导出的一些文件导入到已有的iOS工程项目中

  • ClassesLibraries 文件夹 选择 Create groups 方式导入已有的iOS工程中

    导入Classes和Libraries
  • Data 文件夹 选择 Create folder references 方式导入的已有的iOS工程中

    导入Data
  • 导入之后的目录结构

    导入之后的目录

三、删除Native下所有的.h文件的引用

注意:Native 下面不仅有.h文件,还有.cpp文件,这里只需要删除所有的.h文件


删除Native下所有的.h文件的引用


删除Native下所有的.h文件的引用

四、删除libil2cpp引用


![删除libil2cpp引用](/images/20160830/Snip20160830_9.png)
![删除libil2cpp引用](/images/20160830/Snip20160830_6.png)
## 五、添加引用类库 * 添加引用库(有部分是iOS),有三个是`optional` ~
![添加引用库](/images/20160830/Snip20160830_7.png)
## 六、Build Settings * `Build Options` -> `Enable Bitcode` = `NO`
![Build Settings](/images/20160830/Snip20160830_1.png)
* `Linking` -> `Other Linker Flags` 添加`-weak_framework` `CoreMotion` `-weak-lSystem`
![Build Settings](/images/20160830/Snip20160830_11.png)
* 在`Search Paths`->`Header Search Paths`添加下图中的头文件引用
![Build Settings](/images/20160830/Snip20160830_12.png)
* 在`Search Paths`->`Library Search Paths` 添加图中路径
![Build Settings](/images/20160830/Snip20160830_13.png)
* 在`Apple LLVM 7.1 - Custom Compiler Flags` -> `Other C Flags` 中添加 `-DINIT_SCRIPTING_BACKEND=1` 同时会在 `Other C++ Flags`中出现
![Build Settings](/images/20160830/Snip20160830_14.png)
* 修改`Apple LLVM 7.1 - Language` -> `C Language Dialect` 值改为C99
![Build Settings](/images/20160830/Snip20160830_15.png)
* 修改`Apple LLVM 7.1 - Language` -> `Precompile Prefix Header` 的值为Yes
![Build Settings](/images/20160830/Snip20160830_16.png)
* 在`Apple LLVM 7.1 - Language - C++`中做如下设置
![Build Settings](/images/20160830/Snip20160830_17.png)
* 在`Apple LLVM 7.1 - Warnings - Objective C`中做如下更改
![Build Settings](/images/20160830/Snip20160830_18.png)
* 在`User-Defined` 中添加如下 * `GCC_THUMB_SUPPORT` = `NO` * `GCC_USE_INDIRECT_FUNCTION_CALLS` = `NO` * `UNITY_RUNTIME_VERSION` = `5.4.0f3` * `UNITY_SCRIPTING_BACKEND` = `il2cpp`
![Build Settings](/images/20160830/Snip20160830_8.png)
## 七、修改PCH文件 * 将`Unity`->`Classes`下面的`Perfix.pch`中的代码全部拷贝到主工程项目的`PCH`中,并且在主工程项目的`PCH`中添加 `#import "UnityAppController.h"`
![修改PCH文件](/images/20160830/Snip20160830_10.png)
![修改PCH文件](/images/20160830/Snip20160830_19.png)

八、处理主工程和Unity的main文件

  • 处理iOS主工程中的main.m文件,将 .m 改为 .mm
  • UnityClasses下的main.mm文件中的内容拷贝到主工程的main文件中,并进行如下修改:

    处理主工程和Unity的`main`文件
  • Build Phases中移除Unity->Classes下的main.mm文件

九、处理UnityAppController.h文件

UnityAppController.h做如下修改

处理`UnityAppController.h`文件

十、处理AppDelegate这个类

  • AppDelegate.h中做如下修改

    处理`AppDelegate`这个类
  • AppDelegate.m中做如下修改

    处理`AppDelegate`这个类
    ![处理`AppDelegate`这个类](/images/20160830/Snip20160830_24.png)
    ![处理`AppDelegate`这个类](/images/20160830/Snip20160830_25.png)