Unity 5.6配置到Swift 3工程中

作者: 鞋底没纹易摔跤 | 来源:发表于2017-04-22 11:23 被阅读237次

    参考配置文章:

    Swift3.0融合Unity

    http://www.jianshu.com/p/e8217896d6ff

    建议按上面的文章配置一次,配置不成功或者报错时再来参考这篇文章

    先到该网址下载需要文件(ios-unity5-master)并解压

    https://github.com/blitzagency/ios-unity5

    里面文件是


    Unity导出工程:

    在Unity网站下载最新版的Unity(本次配置成功是选择免费的)

    安装Unity并验证账号

    官网:https://unity3d.com/cn/

    可在这个网站下载模型Unity模型:(登录账号选择那些0积分的下载,需要筛选unity模型)

    http://www.cgrealm.org/

    模型下载后打开对应的unity模型文件

    然后选择New Unity Project

    打开Unity后如果此处没有模型文件(即空白,下图是有模型文件)就打开菜单

    File -> Open Sence把下载的模型文件导入进来

    然后打开这几个模型文件,找到里面的模型(不是贴图),拖到界面中

    然后开始导出Unity的Xcode工程

    File -> Build Settings

    选择iOS,然后如果左下角Switch Platform按钮可点击就点击,作用就是转换成iOS平台(下次再选择iOS就不能点击了)

    然后右侧Run in Xcode as有Debug和Release两种选择,此处选择Release

    选好之后点击Player Settings(不是Build!!!),弹出以下界面。选择Other Settings栏。此时可以先把Build Setting界面关掉


    可按如上配置

    提示:

    1.Bundle Identifier处填你项目的Bundle Identifier

    2.Target SDK有两个选项Device SDK 和 Simulator 网上说前者是真机,后者是模拟器。没试过选择Simulator。

    然后回到Build Setting中,如果关闭了再打开就行了,上面配置不会变的。

    点击Build。填写导出的文件名和导出路径后点击save。导出时间有点长(电脑配置高的话很快)。

    导出完毕后可以关闭Unity了。

    打开导出的文件,内容如下


    实际需要的文件是Classes,Libraries和Data。其他暂时没用到(包括Unity的Xcode工程)。后面说的项目或者工程都是指自己的Swift工程。

    下面开始配置自己的Swift工程:

    1.在开始配置之前先在自己工程中配置好pch文件

    2.导入一下依赖库,按照下图添加(最好不要重复导入)

    dylib类型的库添加方法:

    Build Phases -> Link Binary With Libraries —> + , 在对话框中点 Add Other, 然后在新的对话框用快捷键Command+Shift+G打开新的Folder对话框,输入/usr/lib/,然后点Go,在新弹出的dylib库目录选择libc++.dylib并添加。

    添加完毕后建议copy一份备份的工程,以防出错后重新添加。

    个人配置过程:

    1.配置好pch,导入相关的库(如上面所说)

    2.导入下载的那些.mm文件, .h文件(build一下就可能开始报错了)

    3.Project->Info切换为Unity后pod install,并在Unity.xcconfig里面添加相关代码

    4。(1)配置Target->build setting->User-Defined的Unity版本和UNITY_IOS_EXPORT_PATH路径。(2)在Build Phases添加Run Script并且配置其中的内容。(3)配置Target->build setting 的 Header Search Paths 和 Library Search Paths路径。(不存在的路径暂时不要添加,否则后面可能会报这个路径不存在的错误)

    5.导入Classes,Data,Libraries文件夹到自己的工程,路径要和上面配置的路径一致。

    6.配置main.swift,修改main.mm等相关内容

    7.完成后clean一下再build一下。如果报错可以按照下面的错误集合参考一下。

    详细的配置按开头的 “Swift3.0融合Unity” 文章进行配置就行了。配置之前先了解一下下面3个提示

    提示:

    1.Classes,Library,Data拉到工程里面去后,打开Classes,把里面的pch文件的内容复制到自己工程的pch文件中,然后把Classes里面的pch文件删除掉(删除掉后要确认一下Build Setting里面pch的路径是不是正确)

    项目的pch文件

    2.如果自己的工程已经存在桥接文件,就不需要把UnityBridge.h桥接文件拖进项目中,直接把UnityBridge.h里面的内容(如下面红框中的内容)copy到自己工程的桥接文件中。


    3.没有UNITY_IOS_EXPORT_PATH等字段

    如果Targets->Build Setting->最下面的User-Defined里面没有UNITY_IOS_EXPORT_PATH等字段的话就把Project->Info -> Configurations里面的文件改为Unity。然后打开命令窗口cd到项目有Podfile的文件夹处(直接拖入Podfile的上层文件夹路径就好了)。输入pod install回车等配置完成后就会出现这些字段了。

    替换为Unity

    配置完成后就会有以下字段


    pod install后记得在Unity.xcconfig里面添加以下内容:(“项目的名字”改成你swift项目的名字)

    #include"Pods/Target Support Files/Pods-项目的名字/Pods-项目的名字.debug.xcconfig"

    #include"Pods/Target Support Files/Pods-项目的名字/Pods-项目的名字.release.xcconfig”

    注意:UNITY_RUNTIME_VERSION填的是Unity的版本,并不是下面的version



    错误集合:

    部分错误都可以在开头介绍的文章里或者网上找到答案

    1.提示@throw的错误:Targets->Build Settings -> 搜索Enable Objective Exceptions -> Yes

    2.提示__weakSelf的错误:Targets->Build Settings -> 搜索C Language Dialect   c99改成GNU99

    3.代码UnityParseCommandLine处报错  ->该行代码改成UnityInitRunTime

    4.nullptr错误:参考开头介绍的文章后面的评论

    5.diff的错误


    在Unity.xcconfig文件里添加原来的xcconfig文件路径

    #include"Pods/Target Support Files/Pods-项目的名字/Pods-项目的名字.debug.xcconfig"

    #include"Pods/Target Support Files/Pods-项目的名字/Pods-项目的名字.release.xcconfig”

    Unity.xcconfig文件中

    6.如果解决了5的问题(上面的问题)后报Pods里面第三方库的某个.h文件找不到(#import “???.h” not found)问题且该.h文件实际是存在的话,可以在Target->Build Setting搜索header search,如下图,在Header Search Paths里面添加该.h文件的上层路径。


    如果该问题解决之后报更多的和这个.h文件所在的第三方库有关的其他文件问题,可以在Targes -> General最下面点击+号,把这个库对应的framework添加到现在的库里面去。



    7.custom_unity_inif错误 或者 UnityAppController.h错误

    如果项目本来就存在桥接文件,就把UnityBridge.h里面的#import文件内容放到自己项目工程的桥接文件里面去。

    如果项目没有桥接文件,最好新建桥接文件。(虽然也可以使用UnityBridge.h当做桥接文件)

    8.弹出很多错误的arm64错误(比如201个错误):

    先在Targets->build settings搜索other Linker Flags,在里面添加$(inherited)

    clean后再Build如果还报错就可能和运行设备有关。

    在Unity导出Xcode工程时在Player Settings弹出的界面中选择的是Device SDK,则自己swift项目的运行设备要选择真机(插入真机)。如果选择的是Simulator则选择模拟器(没试过这个Simulator)。

    再clean后Build一下可能这个错误就没了。

    9.弹出很少错误的arm64错误:


    这个错误找了很久没找到解决方法,英文的网站也找了不少。本次解决的办法是重新配置Unity到Xcode工程(个人是因为发现UnityBridge.h文件和项目的桥接文件都存在项目中,而且UNITY_RUNTIME_VERSION字段填的是1.0,并不是Unity实际的版本号,所以果断重新配置,发现这个问题竟然消失了,这个问题我弄了一天一夜,虽然网上有挺多相关解决办法,但都不适用我的工程)。

    相关文章

      网友评论

      • Silenceapple:既然都是swift ,怎么会有 pch 文件
      • CherryBox:您好,我想问一下项目结合成功之后怎么样去调用Unity的界面,这个问题我纠结了好久
        Silenceapple:@鞋底没纹易摔跤 如何直接打开进入的就是unity界面 哇。
        鞋底没纹易摔跤:@CherryBox 是指调用时出现黑屏的问题吗?我也找了很多资料,但都没成功,所以现在暂时放在一边,待以后有更多资料时再尝试
        CherryBox:我也是用Swift的

      本文标题:Unity 5.6配置到Swift 3工程中

      本文链接:https://www.haomeiwen.com/subject/iqcszttx.html