1.嵌入相关配置
1)unity导出的工程与已有工程置于相同根路径下。
![](https://img.haomeiwen.com/i608646/356e4ffa1c847b25.jpeg)
2)在已有工程引用三个文件夹,Data 选择Create folder references,Classes和Libraries 选择Create groups。
![](https://img.haomeiwen.com/i608646/3195a7e289051c02.jpeg)
![](https://img.haomeiwen.com/i608646/215f0c46a38c22ff.jpeg)
3)Remove Reference 掉Libraries中libil2cpp group,和Classes—>Native下的所有.h文件。
4)新建PrefixHeader.pch文件。在Classes下Prefix.pch文件代码拷贝至新生成的pct文件。添加 UnityAppController.h 的引用。
![](https://img.haomeiwen.com/i608646/781d4935e645b4da.jpeg)
5)引用framework(注意Optional的三个)。
![](https://img.haomeiwen.com/i608646/7beebee21bce49f0.jpeg)
6)配置Build Setting。
![](https://img.haomeiwen.com/i608646/139646d43517601c.jpeg)
![](https://img.haomeiwen.com/i608646/eab373918114b3f0.jpeg)
![](https://img.haomeiwen.com/i608646/f65c2d8c29da6fba.jpeg)
![](https://img.haomeiwen.com/i608646/adf0d23fea7899e4.jpeg)
![](https://img.haomeiwen.com/i608646/0022960030a67711.jpeg)
![](https://img.haomeiwen.com/i608646/a4ff36fb8cedc635.jpeg)
![](https://img.haomeiwen.com/i608646/a35081416abc798e.jpeg)
![](https://img.haomeiwen.com/i608646/8f250225f4eae884.jpeg)
![](https://img.haomeiwen.com/i608646/09698bad42127e80.jpeg)
7)处理iOS已有项目的main.m文件,将.m改为.mm,将Classes下的main.mm内容拷贝至新main文件中,并进行修改。
![](https://img.haomeiwen.com/i608646/d07b7615a838efa9.jpeg)
8)Build Phases中移除Classes下的main.mm文件。
UnityAppController.h
![](https://img.haomeiwen.com/i608646/f3e2044b383ab9a3.jpeg)
AppDelegate.h
![](https://img.haomeiwen.com/i608646/58feaac5e495ae14.jpeg)
AppDelegate.m
![](https://img.haomeiwen.com/i608646/836ce3b45d3b5ecd.jpeg)
9)其他修改。
2.集成Google cardboard SDK 报错
http://qiita.com/ozawachev/items/ff0728ce4d01ece598ee
1/2
(已解决)
解决方法:增加中间变量
![](https://img.haomeiwen.com/i608646/2252012e2387c460.jpeg)
2/2
(待解决)
![](https://img.haomeiwen.com/i608646/9d11b8e73c54ede8.jpeg)
(已解决)2015.12.06 16:40
![](https://img.haomeiwen.com/i608646/14e4291445dbbdff.jpeg)
3.cardboard SDK 动态改变 AppControllerClassName,导致———— " -[CardboardAppController unityController]: unrecognized selector sent to instance 0x12d591bd0” 错误解决:固定启动appdelegate
![](https://img.haomeiwen.com/i608646/1a3f3102df3e50ed.jpeg)
4. startSettingsDialog:报错
![](https://img.haomeiwen.com/i608646/02820c2ab0bee44e.jpeg)
网友评论
Profiler_InitProfiler();
切换偶尔是正常的,但有时候会显示错乱,麻烦看下
(void)showUnityWindow {
if (_didResignActive) {
UnityPause(false);
}
_didResignActive = NO;
UnityLoadApplication();
Profiler_InitProfiler();
self.window.hidden =YES;
self.unityWindow.hidden = NO;
[self.unityWindow makeKeyWindow];
}
(void)hideUnityWindow {
UnityPause(true);
_didResignActive = YES;
Profiler_UninitProfiler();
self.unityWindow.hidden = YES;
self.window.hidden = NO;
[self.window makeKeyWindow];
}
发送消息代码:
(void)wjBtnDidClicked {
[kAppDelegate showUnityWindow];
[self toUnityPageWithValue:@"wj"];
}
(void)scenesBtnDidClicked {
[kAppDelegate showUnityWindow];
[self toUnityPageWithValue:@"scenes"];
}
#pragma mark - 跳转到对应的Unity页面
(void)toUnityPageWithValue:(NSString *)value {
// TODO: 新增代码
//报错SendMessage: object Controller does not have receiver for function openSence! 说明UnitySendMessage传递的对象不具备相应的方法
const char *data = [value UTF8String];
/**
你那边需要打开场景的话 需要 传值给 OpenSence这个函数 通过ios给unity对象传值的方式 值有两个 "wj" 和 ”scenes“
"Controller" "openSence" "wj 或者 scenes"
*/
UnitySendMessage("Controller", "OpenSence",data);
}
有关这个的都报Expected ';' at end of declaration
Undefined symbols for architecture armv7:
"RegisterStaticallyLinkedModulesGranular()", referenced from:
RegisterStaticallyLinkedModules() in libiPhone-lib.a(RegisterStaticallyLinkedModules.o)
"RegisterAllClasses()", referenced from:
InitializeEngineNoGraphics() in libiPhone-lib.a(SaveAndLoadHelper.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
有遇到同样问题的么,请指教
第一种方式:unity3D开发工程师使用easyAR的unitySDK做一个AR的模型,然后导出Xcode工程,最后iOS工程师把这个导出的工程与原生的工程代码进行整合?
第二种方式:使用原生的OpenGLES引擎画出那个AR模型,我看easyAR的iOS示例Sample里面就是这种方法。但是手动openGL画3D模型也太难了吧?有没有什么工具把做出来的3D模型文件转换一下直接拿到项目里面使用?
我看你的代码应该做的的VR项目。AR应该也类似吧?
希望对你有帮助。