日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

2019最新 iOS Native项目集成Unity3D

發(fā)布時(shí)間:2025/7/25 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019最新 iOS Native项目集成Unity3D 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

經(jīng)歷了幾天的不斷嘗試解決各種報(bào)錯(cuò)和網(wǎng)上尋得的資料最終成功在iOS項(xiàng)目中集成Unity3D,現(xiàn)有的資料都比較老,多數(shù)不適用或者說(shuō)集成完報(bào)很多錯(cuò)誤。
言歸正傳,目前我所做的集成是基于Xcode10.1(最新為10.2),Unity2018.2.21f1 (建議先在文章最后看一下關(guān)于UnityPlayerSetting的設(shè)置)

  • 步驟一:新建文件夾,里面存放兩個(gè)文件,一個(gè)是Xcode Native工程(以下簡(jiǎn)稱A工程),另一個(gè)是Unity導(dǎo)出的Xcode工程(以下簡(jiǎn)稱B工程)

  • 步驟二:在B工程中找到Classes,Libraries和Data拷貝到A工程的根目錄中,然后將Classes,Libraries通過(guò)Add file的方式添加到項(xiàng)目中,注意勾選Create groups;data也添加到項(xiàng)目中勾選Create folder references。

  • 步驟三:在項(xiàng)目根目錄中新建PCH文件,然后將Classes下的Prefix.pch文件中的全部代碼復(fù)制到剛才創(chuàng)建的PCH文件中,并在代碼中添加#import "UnityAppController.h"

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

  • 步驟四:在Target->Build Setting中進(jìn)行以下配置:

    a.設(shè)置Enable Bitcode:NO;

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

    c.對(duì)Classes和Libraries的路徑進(jìn)行配置;

    在Header Search Paths中添加:

    $(SRCROOT)/Classes

    $(SRCROOT)/Classes/Native

    $(SRCROOT)/Libraries/libil2cpp/include

    在Library Search Paths中添加:

    $(PROJECT_DIR)/Libraries(如有,則不需要重復(fù)添加)

    $(PROJECT_DIR)/Libraries/Plugins/iOS

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

    e.設(shè)置Enable C++ Runtime Types:NO

    f.設(shè)置Overriding Deprecated Objective-C Methods:Yes

    g.設(shè)置Unintentional Root Class:Yes

    h.點(diǎn)擊如下圖的+號(hào),添加4個(gè)Add User-Defined Setting

    GCC_THUMB_SUPPORT : NO

    GCC_USE_INDIRECT_FUNCTION_CALLS : NO

    UNITY_RUNTIME_VERSION : 2018.2.21f1(以自己Unity實(shí)際版本號(hào)為準(zhǔn))

    UNITY_SCRIPTING_BACKEND : il2cpp

  • 步驟五:在Target->Build Phases中導(dǎo)入以下庫(kù)(建議以自己Unity導(dǎo)出的Xcode項(xiàng)目對(duì)應(yīng)添加):

Classes文件夾下的main.mm中全部代碼復(fù)制到Xcode生成的main.m中;將main.mm代碼中的"UnityAppController"修改成"AppDelegate";

將main.m修改為main.mm然后進(jìn)行如圖操作:

  • 步驟六:把Classes文件夾下的UnityAppController.h進(jìn)行如圖修改(報(bào)錯(cuò)是因?yàn)锳ppDelegate中還未做修改)

  • 步驟七:對(duì)AppDelegate進(jìn)行如下修改:

  • 步驟八:最后實(shí)現(xiàn)iOS界面和Unity界面相互切換

    a.iOS界面切換到Unity界面; 在ViewController.m中創(chuàng)建一個(gè)button,點(diǎn)擊觸發(fā)方法如下:

    b.Unity界面切換到iOS界面; 在unityWindow上添加一個(gè)button,如下:

補(bǔ)充Unity3D中需要對(duì)PlayerSettings做的設(shè)置:

1.取消Auto Graphics API的勾選并移除Metal選擇OpenGLES2(補(bǔ)充:取消勾選,選擇Metal也能成功,根據(jù)相關(guān)報(bào)錯(cuò)信息自行修改)

2.取消Strip Engine Code的勾選

報(bào)錯(cuò)補(bǔ)充: 錯(cuò)誤1:

只需要找到DeviceSettings.mm文件添加默認(rèn)return 值

錯(cuò)誤2:

改寫成如下圖所示即可

錯(cuò)誤3:

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

最終效果

可以動(dòng)手嘗試,如有錯(cuò)誤歡迎批評(píng)指正。聯(lián)系方式QQ:877479310

轉(zhuǎn)載于:https://juejin.im/post/5cac20bef265da036504d8cb

總結(jié)

以上是生活随笔為你收集整理的2019最新 iOS Native项目集成Unity3D的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。