美文网首页
iOS原生工程接入unity导出的Xcode工程

iOS原生工程接入unity导出的Xcode工程

作者: 戊戌水瓶 | 来源:发表于2020-09-27 16:22 被阅读0次

1    首先将导出包运行看是否报错。可以跑起来再做如下操作。

    将Classes、Data、Libraries三个文件夹和MapFileParser.sh文件复制到自己的iOS工程中。自己的iOS项目目录:

2    将文件添加到项目中

    2.1    将Data文件夹以以下方式添加

2.2    将Classes、Libraries文件夹按如下方式添加

2.3    如果Classes->Native目录下有.h文件,需要全部删除引用

    再删除Libraries->libil2cpp文件夹的引用,操作同上

3    iOS工程的环境配置,以Unity的项目为参考

    3.1    添加应用库     

    3.2    添加头文件和库的搜索路径    

    3.3    其他的一些配置

        Other C Flag、Other Linker Flags

如果自己iOS项目中有pch文件,则将Prefix.pch里面的文件拷贝到自己的pch文件中,并在合后的pch文件中添加#import "UnityAppController.h"

    3.4    添加用户自定义的设置


4    修改main.m文件

把Classes/文件夹里面的main.mm里面的代码,拷贝到Supporting

Files/下的main.m文件中,并把后缀改成.mm,修改如下图

然后删除Classe目录下单main.mm文件。注意:一样是删除引用。

5     修改AppDelegate文件

    5.1     .h文件增加unityController属性

        @property (strong, nonatomic) UnityAppController * unityController;

    5.2     .m文件做如下修改

6    修改UnityAppController.h文件

并增加两个方法restartUnity、hideUnityWindow

在UnityAppController.mm实现

7    新建Unity的显示控制器

在新的Unity界面显示时调用启动startUnity的方法,如有需要可以再调用切换场景的方法;

第二次启动直接调用restartUnity的方法

8    iOS和Unity的调用方法

8.1      iOS调用Unity的方法:

三个参数分别是:物体名、方法名、参数

UnitySendMessage("Global", "UpdateUnityInfo", [@"show23" UTF8String]) ;

8.2     Unity调用iOS原生的方法

在Libraries文件下新建UnityToIOS文件夹,在此新建两个文件如下:

9    常见问题

9.1      Control may reach end of non-void function:

解决办法:方法末尾添加return NULL;

9.2      编译时遇到Permission denied:

解决办法:Chmod +x   / Users/…../MapFileParser.sh

9.3      ]Undefined symbols for architecture arm6: "_GetAppController",referenced from:

解决办法:修改文件后缀为.mm

相关文章

网友评论

      本文标题:iOS原生工程接入unity导出的Xcode工程

      本文链接:https://www.haomeiwen.com/subject/osjoyktx.html