2019最新 iOS Native项目集成Unity3D

经历了几天的不断尝试解决各种报错和网上寻得的资料最终成功在iOS项目中集成Unity3D,现有的资料都比较老,多数不适用或者说集成完报很多错误。
言归正传,目前我所做的集成是基于Xcode10.1(最新为10.2),Unity2018.2.21f1 (建议先在文章最后看一下关于UnityPlayerSetting的设置)

  • 步骤一:新建文件夹,里面存放两个文件,一个是Xcode Native工程(以下简称A工程),另一个是Unity导出的Xcode工程(以下简称B工程)

  • 步骤二:在B工程中找到Classes,Libraries和Data拷贝到A工程的根目录中,然后将Classes,Libraries通过Add file的方式添加到项目中,注意勾选Create groups;data也添加到项目中勾选Create folder references。

  • 步骤三:在项目根目录中新建PCH文件,然后将Classes下的Prefix.pch文件中的全部代码复制到刚才创建的PCH文件中,并在代码中添加#import "UnityAppController.h"

    将PCH文件的路径添加到Target->Build Setting->Prefix Header中

  • 步骤四:在Target->Build Setting中进行以下配置:

    a.设置Enable Bitcode:NO;

    b.Other Linker Flags添加(注意:一定要按顺序)-weak_framework,CoreMotion,-weak-lSystem,-licucore

    c.对Classes和Libraries的路径进行配置;

    在Header Search Paths中添加:

    $(SRCROOT)/Classes

    $(SRCROOT)/Classes/Native

    $(SRCROOT)/Libraries/libil2cpp/include

    在Library Search Paths中添加:

    $(PROJECT_DIR)/Libraries(如有,则不需要重复添加)

    $(PROJECT_DIR)/Libraries/Plugins/iOS

    d.Other C Flags添加 -DINIT_SCRIPTING_BACKEND=1 和 -DRUNTIME_IL2CPP=1

    e.设置Enable C++ Runtime Types:NO

    f.设置Overriding Deprecated Objective-C Methods:Yes

    g.设置Unintentional Root Class:Yes

    h.点击如下图的+号,添加4个Add User-Defined Setting

    GCC_THUMB_SUPPORT : NO

    GCC_USE_INDIRECT_FUNCTION_CALLS : NO

    UNITY_RUNTIME_VERSION : 2018.2.21f1(以自己Unity实际版本号为准)

    UNITY_SCRIPTING_BACKEND : il2cpp

  • 步骤五:在Target->Build Phases中导入以下库(建议以自己Unity导出的Xcode项目对应添加):

Classes文件夹下的main.mm中全部代码复制到Xcode生成的main.m中;将main.mm代码中的"UnityAppController"修改成"AppDelegate";

将main.m修改为main.mm然后进行如图操作:

  • 步骤六:把Classes文件夹下的UnityAppController.h进行如图修改(报错是因为AppDelegate中还未做修改)

  • 步骤七:对AppDelegate进行如下修改:

  • 步骤八:最后实现iOS界面和Unity界面相互切换

    a.iOS界面切换到Unity界面; 在ViewController.m中创建一个button,点击触发方法如下:

    b.Unity界面切换到iOS界面; 在unityWindow上添加一个button,如下:

补充Unity3D中需要对PlayerSettings做的设置:

1.取消Auto Graphics API的勾选并移除Metal选择OpenGLES2(补充:取消勾选,选择Metal也能成功,根据相关报错信息自行修改)

2.取消Strip Engine Code的勾选

报错补充: 错误1:

只需要找到DeviceSettings.mm文件添加默认return 值

错误2:

改写成如下图所示即可

错误3:

需要在Other C Flags里添加支持.net4.0

最终效果

可以动手尝试,如有错误欢迎批评指正。联系方式QQ:877479310

转载于:https://juejin.im/post/5cac20bef265da036504d8cb

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值