如何将Unity集成到Android Activity中

9
这是我第一次使用Unity,我希望将其集成到已有的Android应用中。根据我的了解,你需要将Android项目打包成一个jar文件。由于不能将资源文件夹包含在jar文件中,那么如何处理应用程序的所有资源呢?此外,该应用程序还使用ActionBarSherlock和ViewPagerIndicator库,它们也有自己的资源。
基本上,我只需要一种方法来在Android上单击按钮并弹出一个包含Unity内容的Activity。我希望应用程序的其余部分是本地的Android代码。感谢您的帮助!
3个回答

6
我找到问题所在了。我一直按照这些说明来操作,但是却遇到各种错误信息,包括ClassNotFound异常。
原来ADT 17处理.jar文件的方式破坏了将Unity集成到Eclipse中的方法。经过数小时的搜索,我想到了以下解决方法:
不要将classes.jar添加到构建路径中,而应该将其复制到项目的/lib目录中,这样一切都应该正常工作。

2
它有助于两者,一个是针对Android运行时,另一个是在编译期间针对Eclipse。 - edthethird
我还没有尝试过,但从我所读的内容来看,Unity 4使这个问题不再成为问题。 - starkej2
@starkej2,你的链接已经失效了,请提供一个有效的链接或者将链接中的内容发出来,好吗? - Devansh Kumar
@DevanshYadav 我找不到有效的链接。我猜这就是为什么他们不鼓励在SO答案中依赖链接的原因。而且,由于Android Eclipse插件不再得到官方支持,该信息现在可能已经没有用了。 - starkej2
@starkej2 好的,但如果您能提供有关此事的任何链接或信息将非常有帮助,请发送给我或在这里发布任何相关的内容。 - Devansh Kumar

3

嗨,以下是需要遵循的步骤:

  1. 使用Android Pro创建Unity项目。

    1. 打开Unity并在“文件”菜单中选择“构建设置”,创建一个项目构建。
    2. 进入你的项目位置下的temp文件夹。
    3. 有一个名为“Staging area”的文件夹。
    4. 将此文件夹复制到其他位置。将此文件夹重命名,例如test-unity。
    5. 现在进入Eclipse,从现有代码创建一个新项目。进入test-unity并选择它。新项目已创建。
    6. 右键单击项目并选择属性。
    7. 从左侧选项卡列表中选择Android,并在右侧面板上检查是否为库。应用更改。
    8. 现在在Android中创建一个名为test-android的新项目。
    9. 包名称必须与您在Unity中使用的名称相同。
    10. 右键单击项目。进入Android并添加库。你会看到Unity项目名称。选择它。Unity项目作为库添加到test-android项目中。
    11. 现在将assets文件夹从Unity项目复制到Eclipse中的test android项目。
    12. 还要将libs-> armeabi-v7a复制到Unity中的libs文件夹中。
    13. 现在进入Unity安装目录。在我的情况下(C:\ Program Files(x86)\ Unity \ Editor \ Data \ PlaybackEngines \ androiddevelopmentplayer \ bin)。将classes.jar复制到test-android项目的libs文件夹中。 可选-。在复制classes.jar后,如果您在test android项目的android-dependencies文件夹中看不到classes.jar,请转到test-android的构建并包含此jar文件。
    14. 现在打开test-android项目中的MainActivity.class并粘贴此行

    import com.unity3d.player.UnityPlayerActivity;

    1. 现在将Activity替换为UnityPlayerActivity,如下所示

    public class MainActivity extends UnityPlayerActivity

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

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

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

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

预先要求:

  • Android Studio 3.4.2+
  • Unity版本 2019.3.0b4+

限制:

虽然我们已经测试了许多使用本地应用程序托管的Unity库的情况,但Unity不再控制运行时的生命周期,因此我们无法保证它能在所有可能的使用情况下正常工作。

例如:

  • Unity作为库仅支持全屏渲染,不支持部分屏幕渲染。
  • 加载多个Unity运行时实例不受支持。
  • 您可能需要适应第三方插件(本地或托管)以正常工作。

工作原理

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

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

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

示例:将Unity作为库集成到本机Android应用程序中

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

示例:将Unity作为库集成到本地iOS应用程序中

示例项目源代码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接