1. 程式人生 > >unity匯出ios工程匯入到另一個工程中

unity匯出ios工程匯入到另一個工程中

demo下載地址:https://pan.baidu.com/s/1hs9Mjha

1.unity匯出檔案時,設定bundle id 與專案的bundle id一致 unity:(file-->building setting-->playerSetting-->otherSettings)


2.Xcode中bitCode設定為NO


3.Classes,Libraries,MapFileParser.sh拖入到專案(選中Copy items if needed, 選中Create groups),Data拖入到專案(選中Copy items if needed, 選中Create folder references)


4.新增framework


5.新增Header Search Path


   $SRCROOT/ios

   $SRCROOT/ios/Classes

   $SRCROOT/ios/Classes/Native

   $SRCROOT/ios/Libraries

   $SRCROOT/ios/Libraries/libil2cpp/include

(注:ios之前是路徑 自行更改自己資料夾的路徑)

6.新增Library Search Paths


   $(inherited)

   $(PROJECT_DIR)

   $(SRCROOT)/ios/Libraries/Plugins/iOS

   $(PROJECT_DIR)/Libraries

7.other C Flags -> -DINIT_SCRIPTING_BACKEND=1


8.新增User-Defined (UNITY_RUNTIME_VERSION版本號與匯出工程的Unity版本號一致)


9.新建pch檔案  將Prefix.pch檔案內容複製到新建的pch檔案中並設定pch檔案路徑 刪除原有的pch檔案


10.Classes/main.mm全部內容複製到main.m 並把副檔名改為.mm, 修改如下程式碼


   returnUIApplicationMain(argc, argv,nil,NSStringFromClass([AppDelegate

class]));

11.新增Run Script


$SRCROOT/ios/MapFileParser.sh(MapFileParser.sh之前的為你到這個檔案的路徑)

12.AppDelegate新增程式碼


@property (strong,nonatomic)UIWindow *window;

@property (strong,nonatomic)UIWindow *unityWindow;

@property (strong,nonatomic)UnityAppController * unityAppController;

-(void)showUnity;

-(void)hideUnity;

13.UnityAppController修改程式碼


return (UnityAppController*)[[UIApplicationsharedApplication]valueForKeyPath:@"delegate.unityAppController"];(unityAppController是你在AppDelegate中給UnityAppController物件的名字)

14.修改AppDelegate程式碼



注:可以先給UnityAppController中呼叫StartUnity方法的地方註釋掉  需要開啟unity時  呼叫startUnity方法,但是startUnity方法只能呼叫一次 否則crash(若想在專案中反覆開啟關閉unity,startUnity方法呼叫一次,不顯示unity介面時給它hidden設定成YES,顯示unity介面時給它hidden設定成NO)




內容來自:http://blog.csdn.net/dylan_lwb_/article/details/51452470

在整合過程中可能遇到的問題

1.Unknown type name 'UnityViewControllerBase'

UnityViewControllerBase報錯, 把它改成UIViewController

2. Unknown type name 'AppDelegate'

在新建的專案裡邊不會報錯, 但是我整合到公司專案的時候報這個錯, 於是改成如下程式碼, 目前沒有出現問題, 如果有人知道原因, 請在評論區告訴我

3. Undefined symbols for architecture armv7

遇到這個錯的同學請新增AssetsLibrary.framework和Accelerate.framework


4.編譯時遇到Permission denied錯誤的是因為當前開發賬號對專案目錄沒有許可權執行MapFileParser.sh

解決辦法: 在終端執行命令 sudo chmod -R 777 所在的目錄

5. Functions that differ only in their return type cannot be overloaded

解決辦法: 把Enable Strict Checking of objc_msgSend Calls 改為NO

6. Control reaches end of non-void function

解決辦法: 把Mismatched Return Type 改為NO


遇到的問題

1.呼叫startUnity方法會給系統的狀態列隱藏  若不想隱藏 將UnityViewControllerBaseiOS.mm檔案中prefersStatusBarHidden改為false


2.unity按鈕點選事件不好用,將[UnityGetMainWindow() makeKeyAndVisible];這句話加上 設定為主視窗即可


相關推薦

IOS如何在當前工程匯入一個工程檔案

可能很多大牛都見過FaceBook的three20框架的原始碼,但是不知道大家有沒有對它裡面的工程之間的相互引用,相互呼叫產生過一些興趣和疑問,如下圖: 由於目前公司正在做一個類似three20的app框架,我的兩位ios大牛使出自己的各種絕技、大招,現在終於做出了一

xcode 匯入一個工程

 轉:http://blog.sina.com.cn/u/1509658847參考的所有網址:(喜歡搗鼓的,最好看看那)http://www.cnblogs.com/xiaodao/archive/2012/03/28/2422091.htmlhttp://www.xiao

VS2012工程呼叫一個工程的DLL檔案

建立動態庫方法: 建立動態庫是生成 .dll .lib 兩個個檔案 檔案 -> 新建 -> 專案 -> win32控制檯應用程式 專案名稱:DLLGenerator 應用程式型別:DLL  附加選項:空專案   建立原始檔dl

C++一個工程呼叫一個 工程的 .exe檔案

用於在不同的工程檔案中,一種語言的工程A去呼叫另一種語言的的工程B。並且可能工程B中要用到工程A 中的引數變數。如果工程A中每個引數變數是一個一維矩陣,也即N*1;這時候如果需要每取變數中一個值,就需要呼叫一次工程B中.exe檔案,如果寫成for 迴圈來做的話,需要呼叫N次.

xcode一個工程引入一個工程

如兩個工程A和B,a依賴b工程生成的靜態庫,但如果想在a中除錯b的程式碼,就需要將b工程引入,現記錄一下引入的過程: 1.將b工程(整個工程檔案)拷貝到a工程目錄下,(應該也可以不拷貝,不過為了後面

QT一個工程呼叫一個工程或是C程式等

若是想要在QT中呼叫外部的一個程式,比如說QT的另一個工程或是某個C語言程式,其實非常簡單: 只需要新增一句程式碼即可:  process->startDetached("/daichu/paperKalman",QStringList()); 程式碼中“ ”中的內容

eclipse中將一個專案作為library匯入一個專案

2. 下載zip包,解壓,eclipse中import->Android Existing Code->(注意只匯入解壓後下面的Library)3. 匯入後標記為Property->Android->isLibrary4. 將indicator下面的

unity匯出ios工程匯入一個工程

demo下載地址:https://pan.baidu.com/s/1hs9Mjha 1.unity匯出檔案時,設定bundle id 與專案的bundle id一致 unity:(file-->building setting-->playerSetting-

iOS如何引用一個工程的方法教程

ive 靜態 header 解釋 target 初見 ima 工程文件 框架 想必很多程序員都見過那些第三方的框架裏邊引用其他的工程的代碼,初見覺得非常高大上,但是完全沒有頭緒,一直抱著羨慕的心態就這麽不了了之了。後來我們項目裏需要引入googleDrive的框架,

IDEA 匯出自己的jar包 並且在一個工程引用或釋出

1.匯出jar包 1.1 idea匯出jar包不如eclipse方便,但是熟練了也很容易操作 1.2 File -> Project Structure -> Artifacts(藝術品) 1.3 點選第二行的 “+” 號 -> Add -&g

IDEA 在某個工程一個module如何使用一個module的資源文件(.xml .prop等)

blog mave 一個 pid 技術 mage module 如何使用 依賴關系 問題如題,經google,解決方案有四種,選擇了比較直觀有效的一種羅列如下: 因為項目采用maven管理,所以我們可以在module2下的pom.xml制定<resource

Xcode一個工程如何引用一個工程

如何在一個專案中引用另一個專案的程式碼呢,實現在專案中檢視並編輯另一個專案的程式碼,像下面這種結構: 首先在要新增到該專案下右擊,選擇“Add Files To “你要新增到的主專案A””,找到要引用的專案B的目錄下的"B.xcodeproj"檔案,直接確定引入即可 注意: 我

C++ 基礎(五)使用vs2015封裝c++生成.dll檔案、.lib檔案、.h檔案後,給一個工程使用:使用前,需配置標頭檔案(.h)靜態庫(.lib)和 動態庫(.dll )專案屬性

一、簡介 我是一個認真的人,要麼不寫,要麼我就把步驟、截圖、程式碼,一 一 附上,方便大家參考學習。 1、為什麼要生成DLL和lib?      就是為了給VS工程呼叫(比如C#呼叫、C++工程)。 2、C#為什麼要呼叫DLL和lib? C++寫的程

vc++求助:直接在vc++6.0編寫程式,編譯通過,連接出錯,但是把原始檔拷到一個工程去,就行了。why??

 我的原始碼如下: c1.h #include <string.h>#include <ctype.h>#include <malloc.h>#include <limits.h>#include <stdio.h>

Android BLE訂閱ios的ANCS一個方式

背景 受到 https://www.jianshu.com/p/88858b8e5e67 的啟發,我明確了要發現ANCS服務需要在配對並繫結藍芽後。此文中的辦法是在 ios側使用 lightblue 模擬一個外設Heart Rate,讓Android 搜尋連線它

分割槽表匯入一個表空間

分割槽表匯入前需預先建好各個表空間,如需匯入另外新表空間解決辦法如下: 分割槽表直接隨普通表匯入新表空間暫未找到解決方案(已解決,加個remap_tablespace引數即可,有幾個表空間就寫幾個)。只能通過下列兩種辦法解決 1:先匯入普通表,然後再單獨匯入分割槽表,匯入引數設定如下: %dbimp% sd

一個專案打成一個jar包,匯入一個專案並呼叫

1.建立兩個專案Import(用於匯入和呼叫jar包的print方法)  ,Export (用於匯出jar包宣告一個print方法,列印一句“倒入成功”) 2.將Export包打包並匯出(在專案上點選右鍵,選擇Export,選擇java目錄下的JAR file) 3.

匯入一個 Git庫到現有的Git庫並保留提交記錄

提取出的主要步驟如下: 1 切換到要合併到的倉庫 2 git remote add 倉庫名 被合併倉庫路徑 3 git fetch --all 4 git merge 倉庫名/被合併倉庫想合併的分支 問題描述: 我在本地有兩個Git庫專案(D1=PC專案  包含通用

如何在Intellij IDEA 一個module 匯入一個module

說明: test1是個java專案裡邊有個Person類,test2是個web專案,test2要用到test1的Person類 1、先建立一個叫test1的java專案,新建一個Person類,如下圖 2、建立第2個專案test2 勾選Web Application

mysql使用儲存過程將一個的資料匯入一個

儲存過程 本人也是第一次使用儲存過程,中間遇到了很多坑,在此記錄一下,希望能幫助使用的人少踩點坑。。 先說一下我使用儲存過程的需要,其實需求很簡單就是把一個表中的資料匯入一個新的表中,並且刪除原有表中的資料,說白了就是一個數據的備份 我是使用navicat