9

这是我第一次使用 Unity,我想将它集成到现有的 Android 应用程序中。

根据我的阅读,您需要将您的 Android 项目打包成一个 jar 文件。由于您不能在 jar 中包含资源文件夹,我如何处理我的应用程序的所有资源?该应用程序还使用 ActionBarSherlock 和 ViewPagerIndicator 库,它们也有自己的资源。

我基本上只需要一种方法来单击 Android 上的按钮并弹出一个包含 Unity 内容的 Activity。我希望应用程序的其余部分是原生 Android 代码。谢谢您的帮助!

4

3 回答 3

6

我想到了。我遵循这些指示,但不断收到各种错误消息,包括 ClassNotFound 异常。

事实证明,ADT 17 处理 .jar 文件的方式打破了这种将 Unity 集成到 Eclipse 中的方法。经过数小时的搜索,这是我想出的解决方法:

与其将 classes.jar 添加到构建路径,不如将 classes.jar 文件复制到/lib项目目录中,一切都应该正常工作。

于 2012-10-05T20:04:39.223 回答
3

您好以下是要遵循的步骤

  1. 使用 android pro 创建一个统一项目。

    1. 开放团结。转到 Unity 中的文件-> 构建设置并为项目创建构建。
    2. 转到您的项目位置/临时/。
    3. 有一个名为 Staging area 的文件夹。
    4. 将此文件夹复制到其他位置。重命名此文件夹。例如测试统一。
    5. 现在去 Eclipse 从现有代码创建一个新项目。去 test-unity 并选择它。新项目已创建。
    6. 右键单击项目并选择属性。
    7. 从左侧选项卡列表中选择 android。并检查右侧面板上的库。应用更改。
    8. 现在在 android 中创建新项目,命名为 test-android。
    9. 包名称必须与您在 unity 中使用的相同。
    10. 右键单击项目。转到android并添加库。您将看到统一项目名称。选择它。unity 项目作为库添加到 test-android 项目中。
    11. 现在将统一项目中的资产文件夹复制到eclipse中以测试android项目。
    12. 同时将 libs->armeabi-v7a 统一复制到 libs 文件夹中。
    13. 现在转到统一安装目录。就我而言( C:\Program Files (x86)\Unity\Editor\Data\PlaybackEngines\androiddevelopmentplayer\bin)。将 classes.jar 复制到 test-android 项目中的 libs 文件夹中。可选的-。复制 classes.jar 后,如果在测试 android 项目的 android-dependencies 文件夹中看不到 classes.jar,请转到 test-android 的构建并包含此 jar 文件。
    14. 现在在 test-android 项目中打开 main activity.class 并粘贴这一行

    导入 com.unity3d.player.UnityPlayerActivity;

    1. 现在用 UnityPlayerActivity 替换 Activity 如下

    公共类 MainActivity 扩展 UnityPlayerActivity

    1. 注释 setContentview(R.layout.main) 行。
    2. 现在运行您的应用程序。
于 2014-09-20T06:44:48.030 回答
0

在某些使用原生平台技术(如 Android/Java 和 iOS/Objective C)的场景中,开发人员希望在他们的应用程序/游戏中包含由 Unity 提供支持的功能(通常用于 3D/2D 实时渲染),如 AR 体验、与 3D 模型的交互,2D小游戏。

您现在可以将由 Unity(从 Unity 2019.3.a2 开始)提供支持的功能直接插入到您的原生移动应用程序中。这些功能包括但不限于 3D 或 2D 实时渲染功能,例如增强现实、2D 迷你游戏或 3D 模型。

您可以将 Unity 运行时组件和您的内容集成到本机平台项目中。Unity 运行时库公开控件以管理何时以及如何在本机应用程序中加载/激活/卸载。

前置要求:

  • 安卓工作室 3.4.2+
  • Unity 版本 2019.3.0b4+

限制

虽然我们测试了许多将 Unity 作为原生应用程序托管的库的场景,但 Unity 不再控制运行时的生命周期,因此我们不能保证它在所有可能的用例中都能正常工作。

例如:

  • Unity 作为库仅支持全屏渲染,不支持在部分屏幕上渲染。
  • 不支持加载多个 Unity 运行时实例。
  • 您可能需要调整第 3 方插件(本机或托管)才能正常工作。

这个怎么运作

总体构建过程还是一样的,Unity 创建了 iOS Xcode 和 Android Gradle 项目,但是为了启用这个功能,我们更改了生成的 iOS Xcode 和 Android Gradle 项目,它们现在具有以下结构:

  • 包含所有源代码和插件的库部分(iOS 框架和 Android 存档 (AAR) 文件)
  • 一个瘦启动器部分,包括应用程序表示数据和运行库

集成 Unity 作为原生 Android 应用程序中的库 逐步解释如何在需要时将 Android 库部分包含到原生应用程序中。

示例:集成 Unity 作为原生 Android 应用程序中的库

集成 Unity 作为本机 iOS 应用程序中的库 逐步解释如何在需要时将 iOS 库部分包含到本机应用程序中。

示例:集成 Unity 作为原生 iOS 应用程序中的库

示例项目源代码

于 2019-12-14T19:42:41.567 回答