首页 文章

如何正确包含.bundle到Unity3d包

提问于
浏览
1

我有一个带有静态库的unity3d的iOS插件,这个库使用来自.bundle的一些图像 . 但是我无法弄清楚如何将我的捆绑包包含在Unity Package中 . 当我将我的软件包放到软件包并尝试从Unity3d编辑器构建项目时,最后我没有将生成的软件包包含在生成的XCode项目中 .

所以我有两个问题:

1)有没有办法将它复制到生成的项目?

2)是否可以在unity3d插件中指定额外的框架(我依赖于AdSupport.framework)以包含在生成的项目中 .

Update: 你可以将你的包复制到Assets / WebPlayerTemplates,这样Unity3d就不会从那里导入任何东西,这个目录也会被导出到unitypackage . 最后一步是使用postbuild脚本将你的包包含到生成的Xcode项目中,我使用了XUPorter .

2 回答

  • 1

    Unity将文件夹Assets / Plugins / iOS中的每个文件复制到Xcode项目's Library folder. That's,非常适合您的lib文件和其他内容,但是当它归于目录结构时它会失败 . 资源包是目录,因此Unity只复制目录的.meta文件,并拒绝复制其中的文件 .

    解决方法是手动复制捆绑包并将其导入Xcode(菜单文件/添加文件到"Unity-iPhone") . 之后,您应始终以追加模式导出iOS项目(默认情况下,CMD B会执行此操作) . 有两个缺点:

    • 当您更新到较新版本的Unity时,项目经常被替换,因此您的捆绑已经消失 . 如果你使用git进行版本控制我建议将bundle添加到存储库,Subversion用户必须做额外的工作 .

    • 每当软件包项目中的软件包发生更改时,您都必须复制它 . 如果这种情况经常发生,那么您可以在构建过程中设置预执行操作,即编写一个从libraty项目复制资源包的小shell脚本 . 这可以在编辑方案中完成:
      Edit Scheme / Build /  Pre-actions

    同样,这可能会在Unity更新中被覆盖,您必须再次手动设置预执行 .

  • 2

    我发现没有办法以这样的方式配置Unity3d,它包含额外的框架和包来生成Xcode项目(即Marmalade SDK允许你通过配置这样做),我使用mod_pbxproj和Unity3d控制台工具来生成XCode项目并注入构建完成后,项目所需的所有捆绑和框架 .

    有一个更好的选择,看问题本身 .

相关问题