如何将Unity集成到Android Activity中

时间:2012-10-04 20:00:43

标签: java android android-ndk unity3d

这是我第一次使用Unity,我希望将其集成到现有的Android应用中。

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

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

3 个答案:

答案 0 :(得分:6)

我明白了。我关注these directions但仍然收到各种错误消息,包括ClassNotFound异常。

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

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

答案 1 :(得分:2)

您好以下是要遵循的步骤

  1. 使用android pro。

    创建一个统一项目
    1. 团结一致。转到文件 - >在Unity中构建设置并为项目创建构建。
    2. 转到你的项目位置/ temp /.
    3. 有一个名为Staging area的文件夹。
    4. 将此文件夹复制到其他位置。重命名此文件夹。例如test-unity。
    5. 现在去eclipse从现有代码创建一个新项目。去测试统一并选择它。新项目已经创建。
    6. 右键单击项目并选择属性。
    7. 从左侧标签列表中选择android。并检查右侧面板上的库。应用更改。
    8. 现在在android名称中创建新项目test-android。
    9. 包名必须与您统一使用的相同。
    10. 右键单击项目。去android并添加库。您将看到统一项目名称。选择它。 unity项目在test-android项目中作为库添加。
    11. 现在将unity项目的unity文件复制到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-dependencies文件夹中看不到classes.jar,那就去测试android项目的构建,并包含这个jar文件。
    14. 现在在test-android项目中打开main activity.class并粘贴此行
    15. import com.unity3d.player.UnityPlayerActivity;

      1. 现在将Unity替换为UnityPlayerActivity,如下所示
      2. 公共类MainActivity扩展了UnityPlayerActivity

        1. 注释行setContentview(R.layout.main)。
        2. 现在运行你的应用程序。

答案 2 :(得分:0)

在某些情况下,使用本机平台技术(例如Android / Java和iOS / Objective C)的开发人员希望在其应用/游戏中包含由Unity提供的功能(通常用于3D / 2D实时渲染),例如AR体验,交互3D模型和2D迷你游戏。

  

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

     

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

先决条件:

  • Android Studio 3.4.2 +
  • 统一版本2019.3.0b4 +

限制

虽然我们以本机应用程序托管的库的形式对Unity进行了许多测试,但是Unity不再控制运行时的生命周期,因此我们不能保证它可以在所有可能的用例中工作。

例如:

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

工作方式

总体构建过程仍然相同,Unity创建了iOS Xcode和Android Gradle项目,但是要启用此功能,我们更改了生成的iOS Xcode和Android Gradle项目,它们现在具有以下结构:

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

将Unity集成为原生Android应用中的库 有关在需要时如何将Android库部分包含到本机应用程序中的逐步说明。

示例:Integration Unity as a library in native Android app

将Unity集成为原生iOS应用中的库 有关在需要时如何将iOS库部分包含到本机应用程序中的逐步说明。

示例:Integration Unity as a library in native iOS app

Sample Project Source Code