1.交互项目创建

1.交互项目创建


1.1 知识点

Unity和Android交互指什么?

Unity和Android之间的交互主要指在发布安卓项目时,我们可以在Unity相关代码中调用Android相关内容,在Android相关代码中调用Unity相关内容。

要达到这样的目的,我们需要建立Android项目,将Android项目以jar包或aar包的形式导入Unity后进行交互,再一起打包。

jar和aar包是归档文件,jar包包含Android项目中的脚本文件和清单文件,不包含资源文件;aar包是Android Studio下打包Android工程中的src(脚本文件)、res(资源文件)、lib(库文件)后生成的打包文件。

用Android Studio打包时一般以aar包形式,用Eclipse打包时一般以jar包形式。

简单记忆:jar和aar有点类似C#中的dll文件,只是规则和结构不同,我们可以将这些包放到其他工程中使用。

我们这节课的主要目的就是创建之后用于生成aar包的Android Studio的工程,用于之后处理Unity和Android的交互逻辑。

创建Unity和Android Studio项目

创建Unity项目后,切换到Android平台,设置包名和Android版本

创建Android Studio


选择 Phone and Tablet,创建一个Empty Activity项目。

没有相同SDK要去下载。

包名和Minimum SDK版本要和Unity项目一致。若没有相同SDK版本,请在Android Studio中下载。

创建完成后,等待加载结束后,删除工程中两个Test项目以及res下的无用资源。删除包,要删两次。


配置build.gradle文件

在Android Studio中Project页签中切换为Project,展开工程名下app页签,打开build.gradle文件。

重要修改:

  1. id 'com.android.application' 修改为 id 'com.android.library'
  2. 删除defaultConfig中的 applicationId 项。
  3. 点击右上角同步按钮 Sync Now。

导入classes.jar包

路径:Unity安装目录\Data\PlaybackEngines\AndroidPlayer\Variations\mono(il2cpp)\Release\Classes中。

  1. 将包拷贝到AndroidStudio中的app\libs下。


  2. 导入后选择包,右键点击 Add As Library。

导入UnityPlayerActivity脚本

路径:Unity安装目录/Data/PlaybackEngines/AndroidPlayer/Source/…。将路径下的文件夹拷贝到AndroidStudio中的app/src/main/java中。



修改MainActivity脚本

我们需要修改Android Studio中的MainActivity脚本:

  1. 改为继承UnityPlayerActivity。
  2. 注释onCreate函数中的setContentView代码。
  3. 添加两个自定义函数之后用于测试。
package com.tao.unityandroidtestgame;

import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;

public class MainActivity extends UnityPlayerActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.activity_main);
    }

    // 测试成员函数
    public String TestFun()
    {
        return "String";
    }

    // 测试静态函数
    public static String TestStaticFun()
    {
        return "TestStaticFun";
    }
}

修改AndroidManifest.xml配置文件

  1. 删除application中的无用内容。
  2. 在activity中加入一句 <meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
  3. MainActivity的包名也可以补全,更加清晰。

生成Unity用的aar包

选中MainActivity脚本,选择 工具栏——>Build——>Make Moudle ….。

红字不是报错,是编码问题,再次点击Make Moudle就没有了。

如果打包aar包时出现了下载相关内容的字样,那么就需要多等待一会儿,下载完成过后一般就能够构建成功。

在output路径下找到打出来的aar包

总结

本节课制作的aar包,是用于和Unity进行交互的安卓包。操作的步骤不能有误,否则会影响之后的交互功能制作。



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏