Android Studio 与 Unity 的交互——加载 Unity 导出的工程到 Android Studio 中

版本信息

Android Studio:(Android Studio-Help-About)
Android Studio-Help-About
Unity:(Unity-Help-About Unity)
注:

  • 中国增强版最新版(时间为2020-02-20)
  • 安装好 Android module

Unity-Help-About Unity

一、Unity 中的操作

1. 创建一个 Unity 工程,准备一个 Unity 小游戏。

推荐教程:unity入门教程-小球吃金币实例

Unity小游戏

2. 导出 Android 工程

首先,找到 File-Build Settings,点击弹出 Build Settings 窗口;
在这里插入图片描述
接着,点击 Add Open Scenes,选择你要导出的 scene,platform 选到 Android,勾上 Export Project,确保 Build System 为 “Gradle”;
在这里插入图片描述
点击 Player Settings ,右侧弹出窗口,可以设置一些参数,这里将 Product Name 设置为 “RollaBall_Unity”,它表现为导出工程的文件夹的名字;
在这里插入图片描述
然后,点击 Build Settings 窗口右下角的 Export,保存到你要保存的地方,我保存到一个名叫 Roll a Ball 的文件夹中;
如果是第一次导出,显示的会是 Switch Platform,点击等待处理一会儿后就会变成 Export,接着点击 Export 就好啦;
在这里插入图片描述
保存后的结果差不多是这个样子:
Roll a Ball 文件夹下有 RollaBall_Unity 文件夹,RollaBall_Unity 文件夹下有 Unity 导出的 Android 工程文件;
在这里插入图片描述
Unity 下的操作到此结束啦。

二、Android Studio 中的操作

1. 创建一个 Android Studio 工程

推荐学习书籍:《第一行代码》 [手动旺柴]
反正就是自己创建一个项目啦。

2. 以 Module 形式导入 Unity

首先,在 Android Studio 中,点击 File-New-Import Module,选择 Unity 导出的 Android 工程,即 RollaBall_Unity 文件夹;
在这里插入图片描述
导入成功后就可以看到我们的 RollaBall_Unity 了,
在这里插入图片描述
然后,将 RollaBall_Unity-src-main 下 AndroidManifest.xml 文件中的以下代码段删除:
在这里插入图片描述
然后,将 app-src-main 下 AndroidManifest.xml 文件 application 中添加:

tools:replace="android:icon, android:theme"

接着,修改 RollaBall_Unity 下的 build.gradle ,

apply plugin: 'com.android.application'

更改为

apply plugin: 'com.android.library'

删除:

applicationId 'com.unity.rollaball'

注:applicationId 里的内容可能和我的不一样,反正删掉这一行就行

删除或注释:

    bundle {
        language {
            enableSplit = false
        }
        density {
            enableSplit = false
        }
        abi {
            enableSplit = true
        }
    }

改完之后,重新 Sync 以下;
最后,右键 app ,点击 Open Module Settings;
在这里插入图片描述
弹出的 Project Structure 窗口中,如下选择:
在这里插入图片描述
勾选 RollaBall_Unity ,点击 OK;
在这里插入图片描述
Over。

3. 启用 Unity 小游戏

首先,新建一个活动,我命名为 StartUnity,不生成布局文件;
将 StartUnity.java 中的 AppCompatActivity 更改为 UnityPlayerActivity:

public class StartUnity extends UnityPlayerActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

然后,在 MainActivity 的布局文件中,创建一个 Button ,编写点击跳转活动程序,跳转到 StartUnity 活动中,代码如下

public class MainActivity extends AppCompatActivity {

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

activity_main.xml 中程序如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Button"
        tools:ignore="HardcodedText" />

</RelativeLayout>

ok啦!

测试一下效果:
在这里插入图片描述
在这里插入图片描述

主要参考:
在android原生项目中嵌入unity项目的方法(AndroidStudio3)

发布了8 篇原创文章 · 获赞 14 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/bz_xyz/article/details/104408309
今日推荐