IOS项目嵌入Unity工程Word格式.docx
- 文档编号:16958842
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:10
- 大小:960.38KB
IOS项目嵌入Unity工程Word格式.docx
《IOS项目嵌入Unity工程Word格式.docx》由会员分享,可在线阅读,更多相关《IOS项目嵌入Unity工程Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
以下所有的文件结构和TARGETS配置都可以参考Unity导出来的工程结构和配置。
1、将Unity项目下面的四个文件复制到iOS项目根目录下:
2、在自己iOS项目里面引用这个几个文件,右键分别选择Classes和Libraries、MapFileParser.sh拖入项目,在Options里面勾选
“Creategroups”,不要选"
Copyitemsifneeded”
2.1、剩下一个Data文件,拖入到项目中,这里的选项是“Createfolderreferences”,
完成之后,文件结构是这个样子:
2.2、接下来删除多余的引用:
在Classes->
Native目录,将目录下的.h文件全部删除(注意:
只有.h,因为里面还有.cpp,在Unity2017导出的版本可以不删,也没影响,这一步其实可以忽略)
2.3、再删除Libraries->
libil2cpp,这个文件的引用,同上面操作步骤一样的
3、对工程环境的配置(参考导出的Unity工程项目)
3.1添加引用库
参考Unity导出的项目中BuildPhases->
LinkBinaryWithLibraries
与其保持一致。
4、3.2、添加头文件和库的搜索路径(参考导出的Unity工程项目)
3.3其他设置(均可参考Unity导出的项目)
(上面注意:
如果自己的iOS项目有pch文件,那就把Prefix.pch里面的文件拷贝到自己的pch文件中,反之也行)
3.4添加用户定义的设置
上面是Unity5.3.4的,下面是2017的,只是版本号改了
3.5添加运行脚本
设置修改完成。
3.代码修改部分
创建PrefixHeader.pch文件:
File->
New->
Other->
PCHfile
删除里面的所有代码并插入以下内容:
#ifndefPrefixHeader_pch
#definePrefixHeader_pch
#ifdef__OBJC__
#import<
Foundation/Foundation.h>
UIKit/UIKit.h>
#endif
#include"
Preprocessor.h"
UnityTrampolineConfigure.h"
UnityInterface.h"
#ifndef__OBJC__
#ifUSE_IL2CPP_PCH
il2cpp_precompiled_header.h"
#ifndefTARGET_IPHONE_SIMULATOR
#defineTARGET_IPHONE_SIMULATOR0
#defineprintf_consoleprintf
现在在BuildSettings下面的AppleLLVM7.1-Language部分,找到调用的字段PrefixHeader,而不是/ENTER/PATH/HERE添加以前创建的文件的路径,例如:
YOUR_PROJECT_NAME/PrefixHeader.pch在我的情况是:
UnityIntegration/PrefixHeader.pch
##步骤8
重命名SupportingFiles/main.m,以main.mm和AppDelegate.m对AppDelegate.mm
##第9步
转到Integration/Classes/main.mm,复制此文件中的所有代码并粘贴它,而不是代码SupportingFiles/main.mm
现在,在SupportingFiles/main.mm换线:
constchar*AppControllerClassName="
UnityAppController"
;
有:
AppDelegate"
##第10步
转到BuildPhases,搜索"
main"
并在CompileSources部分删除与Classes文件夹对应的文件:
##步骤11
内部UnityAppController.h文件进行以下更改:
评论部分:
inlineUnityAppController*GetAppController()
{
return(UnityAppController*)[UIApplicationsharedApplication].delegate;
}
并粘贴:
NS_INLINEUnityAppController*GetAppController()
NSObject<
UIApplicationDelegate>
*delegate=[UIApplicationsharedApplication].delegate;
UnityAppController*currentUnityController=(UnityAppController*)[delegatevalueForKey:
@"
unityController"
];
returncurrentUnityController;
内部UnityAppController.mm文件进行以下更改:
#import"
AppDelegate.h"
将空-(void)shouldAttachRenderDelegate方法替换为:
-(void)shouldAttachRenderDelegate{
AppDelegate*delegate=(AppDelegate*)[UIApplicationsharedApplication].delegate;
[delegateshouldAttachRenderDelegate];
##步骤12
VuforiaNativeRendererController.mm文件注释最后一行:
IMPL_APP_CONTROLLER_SUBCLASS(VuforiaNativeRendererController)
注意:
如果你改变你的Unity项目中的东西,选择Build->
Append。
之后,你需要VuforiaNativeRendererController.mm再次评论这一行
##第13步让我们创建一个按钮,在我们的应用程序中打开Unity+Vuforia视图。
在ViewController.m添加以下部分:
@property(nonatomic,strong)UIButton*showUnityButton;
-(void)viewDidLoad{
[superviewDidLoad];
self.view.backgroundColor=[UIColorblueColor];
self.showUnityButton=[UIButtonbuttonWithType:
UIButtonTypeSystem];
[self.showUnityButtonsetTitle:
SHOWUNITY"
forState:
UIControlStateNormal];
self.showUnityButton.frame=CGRectMake(0,0,100,44);
self.showUnityButton.center=self.view.center;
[self.viewaddSubview:
self.showUnityButton];
[self.showUnityButtonaddTarget:
selfaction:
@selector(showUnityButton:
)forControlEvents:
UIControlEventTouchUpInside];
-(void)showUnityButton:
(UIButton*)sender{
[(AppDelegate*)[UIApplicationsharedApplication].delegateshowUnityWindow];
##步骤14
在这种回购,你可以找到既AppDelegate.h和AppDelegate.mm文件及其内容粘贴到您的文件。
不久,这些文件发生了什么:
我们UIWindow为main和Unity内容创建2个实例
在我们使用的窗口-(void)showUnityWindow和
-(void)hideUnityWindow方法之间切换
我们也有实例unityController的UnityAppController类型,因为我们采取了远离团结生成的应用程序委托控制,我们需要通过我们的应用程序委托传递给它的呼叫
在(BOOL)application:
(UIApplication*)applicationdidFinishLaunchingWithOptions:
(NSDictionary*)launchOptions我们创建这些窗口,根视图控制器,导航控制器等,所以应用程序将正常工作
#FinalBuilding并运行应用程序将显示如下:
我们按下ShowUnity按钮,它会打开Unity+Vuforia视图,该视图可以很好地识别标记并在中心显示漂亮的黄色按钮,这可以将我们带回到之前的视图控制器
有用的链接
https:
//the-nerd.be/2015/11/13/integrate-unity-5-in-a-native-ios-app-with-xcode-7/
主要参考链接:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IOS 项目 嵌入 Unity 工程