http://blog.csdn.net/dylan_lwb_/article/details/51452470#comments
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
demo下載地址http://pan.baidu.com/s/1pLcpKpl
1.Unity導出工程時設置bundle
id要與項目一致
2.修改bit code為NO
3.刪除Main.storyboard,代碼設置控制器(方便切換window)
4.將Classes,Libraries,MapFileParser.sh拖入到項目(選中Copy items if needed,選中Create groups)
將Data拖入到項目(選中Copy items if needed,選中Create folder references)
5.添加framework(最下邊三個是HiAR UnitySDK里邊的)
6.添加Header Search Paths和Library Search Paths
7.other C Flags -> -DINIT_SCRIPTING_BACKEND=1
8.添加User-Defined (UNITY_RUNTIME_VERSION版本號與導出工程的Unity版本號一致)
9.Unity/Classes/Prefix.pch的代碼復制到新建的pch文件,
設置pch文件路徑
10.將Classes/main.mm全部內容復制到main.m 并把擴展名改為.mm, 修改如下代碼
11.添加Run Script
12. 修改UnityAppController.h如下代碼
13.在AppDelegate.h .m中添加如下代碼
在集成過程中可能遇到的問題
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
// 可能有的步驟忘記了, 有疑問的可以在評論區留言
// 轉載請注明原地址