【问题标题】:Unity3D and Android Studio IntegrationUnity3D 和 Android Studio 集成
【发布时间】:2014-08-25 05:06:45
【问题描述】:

有人知道将 Android 与 Unity Studio 集成吗? (我会解释)
我在 Unity(OSX Maverics 上的 4.3.x)中创建了一个简单的场景进行测试。有一个 3D 对象,没有别的。
我在这里使用 Stackoverflow 解释在 XCode 中执行此操作,并在此处 (Touch a UIButton and show Unity on UIView or UIViewController) 发布我的完整代码以表明它非常简单。
但现在,我需要在 Android Studio 上做同样的事情(我安装了它,我可以将项目从 Unity 导出到 Android)
我唯一知道的是,AndroidManifest.xml 和文件位于“res/layout/(something).xml”文件中,当您在安卓工作室。

当您从 Unity 打开生成的项目时,您拥有的唯一 XML 是 AndroidManifest。
所以我迷路了。由于第三方网站(http://www.rbcafe.com/Softwares/Unity/Documentation/Manual/android-GettingStarted.html)的文档只提到了Unity Eclipse和项目中不存在的一个JAVA文件,让我更加迷茫。

在 Objective-C 中,您创建 somethingDelegate.mm 和 .h 并插入“一行代码”并准备就绪。在 Android 中似乎没有这个官方文档 (http://docs.unity3d.com/Manual/PluginsForAndroid.html) 说的那么简单。

有人已经在 Android Studio 中这样做了,可以帮助我吗?

提前致谢。

** 为赏金编辑: **

需要创建 3 个视图:
1 - 带有 2 个按钮的主视图;
2 - 一个按钮转到第二个视图;
3 - 其他按钮转到 Unity 视图;

一定有一个简单的方法可以在 Android 上做到这一点,因为工作室制作了上面的链接。

【问题讨论】:

  • 上次我检查了 Unity 仅支持 Eclipse 项目。此外,由于 Android Studio 仍处于测试阶段,我相信 Unity 还没有做出任何努力来支持它。
  • 由于 Android Studio 和 Unity 与 JAVA 和 C# 一起工作,我相信这是一种方法,因为 Unity 使用 JDK 和其他内置在 Android Studio 上的 DK 导出 Google 项目。所以,有一种方法......我认为...... rs
  • 您的问题到底是什么?将项目导入 Android Studio 是没有问题的。导入项目后你想实现什么?
  • 我正在尝试与unity集成,例如:创建一个带有2个按钮的简单页面,一个按钮是另一个视图,另一个是unity。只有这样。但是在 Android Studio 中,就没有那么简单了……
  • 你有运气吗?我尝试使用 eclipse 将一个统一项目与 android 集成并完成。 unity软件生成的两个按钮和一个UnityPlayerNativeActivity。请让我知道我能提供什么帮助。

标签: java android xml unity3d android-studio


【解决方案1】:

设置一个 Android 项目非常简单。您链接的文档已过时,您根本不需要移动任何文件。

团结

  1. 转到File -> Build Settings -> Android 并单击Switch Platform
  2. 启用Google Android Project
  3. 点击Export并选择您希望Android项目的位置

Android Studio

  1. 导入或打开您刚刚使用 Unity 创建的项目
  2. 完成:)

如果你想在子活动中显示 Unity 引擎,我建议你看看this answer

如果您完全不熟悉 Android 开发,您应该从一个简单的“Hello World”应用开始,而不要通过添加 Unity 来使事情复杂化。只需关注一些official Android guides

【讨论】:

  • 我已经这样做了,我的问题是如何通过创建 3 个视图进行集成,一个默认带有 2 个按钮,一个转到另一个视图,另一个转到统一,我只需要解释这段代码。
  • @JackLoverde 很抱歉,但我不会为您编写如何添加 2 个按钮和多个视图的分步教程。在我的链接答案中解释了嵌入 Unity,其余的请阅读链接指南。如果您在使用 Android Studio 时遇到问题,请在 Google 上查找教程或提出具体问题。
  • @leosori - 很抱歉恢复这个线程 - 我有一个小的工作流程 Q w/r/t Android Studio。如果我用 A.S.“打开”我的统一导出,我必须设置一堆配置,而且事情似乎不太正确。如果我“导入”统一导出,事情看起来还不错 - 它运行和一切,但小问题是 A.S.复制了我的项目文件——这让我想知道如何统一进行更改并将它们放入 A.S. - 重新导入项目?或者我可以使用符号链接吗?或者设置 gradle 指向上一个项目? TIA,对于 android noob Q's 感到抱歉。
  • @StefanHoffmann,这并没有解决 OP 问题。 OP 正在询问如何在 Android 应用程序中启动 Unity 窗口。不要在 Android Studio 中打开 Unity 项目。如果你查看他提到的关于在 Xcode 中做同样事情的链接,你就会意识到这一点。
  • @StefanHoffmann。同样,没有解决 OP 原始问题。我正在做一些非常相似的事情,并且遇到了完全相同的问题。在 cmets 中争论它不会帮助任何人。 OP 正在询问如何在活动中与本机活动并排运行 Unity。对于 iOS 和 Eclipse,这是一个非常复杂、详细的过程。目前还不清楚如何在 Android Studio 中做同样的事情。
【解决方案2】:

我将一个 Unity 项目集成到一个 Android 应用程序中。

我有一个使用 Android Studio 创建的按钮的简单活动。

单击此按钮后,Unity 场景将启动。


从unity导出的android项目应该是这样的:


需要先转换为 Gradle 项目。

为此:

  1. 打开 Android Studio -> 选择导入项目 -> 选择统一项目(非 Gradle 项目) -> 保存项目并关闭。

现在您的统一项目文件夹如下所示:


现在打开您的项目并执行以下操作以将统一项目导入您的项目:

  1. 点击文件 -> 新建 -> 新建模块 -> 选择“import Gradle Project” -> 选择您刚刚创建的统一 gradle 项目文件夹 -> 如果提示通过选中 Android Studio 中的“导入”复选框来重命名模块名称 ->点击完成
  2. 在 Settings.gradle 文件中验证以查看新模块名称是否为 在include命令中添加:

    include ':app', ':yournewmodulename’
    
  3. 从导航打开新统一模块的 build.gradle 文件 窗口并重命名以下行:

    apply plugin: 'com.android.application'
    

    apply plugin: 'com.android.library'
    
  4. 从新统一模块的 defaultConfig 部分中删除该行:

    applicationId "com.xxx.xxx"
    
  5. 打开这个新的统一模块的清单并注释 应用程序 标签(不要去掉uses-sdk标签)。集成新的unity 通过移动必要的模块的清单与您的项目清单 项目清单的标签(例如:Activityuses-feature 等等)。

  6. 打开项目的 build.gradle 并在 依赖部分:

    dependencies {
    …
    compile project(path: ':yournewmodulename')
    
    }
    

现在点击按钮,您可以从您的活动中调用统一模块中的活动,如下所示:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.xxx.xxx.UnityPlayerActivity;

public class MainActivity extends AppCompatActivity {

private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button= (Button)findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(MainActivity.this, UnityPlayerActivity.class);
            startActivity(i);
        }
    });
}
}

【讨论】:

  • 如何关闭unity app游戏并返回主Activity?
  • 您可以在“UnityPlayerActivity”类中使用“finish()”方法创建函数。当用户想要退出游戏时,从统一游戏中调用它。 stackoverflow.com/a/27730800/3629513
  • 你好 mustaq 我已经按照你说的成功集成了,你能告诉我如何将字符串从 android 传递到 unity 游戏吗?我的问题链接是stackoverflow.com/questions/59370546/… 请查看我的问题
  • 嗨 Suhail,根据您在分享的问题中的最后评论,我相信您找到了解决方案。
【解决方案3】:

要在 2016 年 3 月在 Android studio 内打开 Android Studio project from Unity3D,您需要 File -> New -> Import 并让其完成工作。

或者,如果您有快速启动窗口:

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多