android打aar给unity使用

效果

在这里插入图片描述
在这里插入图片描述

方式一
android端
1、新建library库
2、复制jar包

把unity的安装目录下面的class.jar包给复制出来,具体目录如下

注意

这里分 il2cpp 和 mono 两个,这个取决于你后面unity要使用那个方式打包,我这里使用的是il2cpp里面的jar包

在这里插入图片描述
在这里插入图片描述

3、android项目中引用jar包

以compileOnly 的方式引用

dependencies {
    compileOnly files('libs/unity-classes.jar')
}
4、新建activity类继承UnityPlayerActivity
import com.unity3d.player.UnityPlayerActivity;

public class TestActivity extends UnityPlayerActivity {
	// 自定义方法,供unity调用
    public String getPath() {
        return Environment.getExternalStorageDirectory().getAbsolutePath();
    }
}
5、修改库的清单文件AndroidManifest.xml

我这里就是直接把app的清单文件直接复制过来,然后删除报错的代码,然后把新建的activity给引进来就可以了

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.testlib">

    <application
        android:allowBackup="true"
        android:supportsRtl="true">
        <activity
            android:name=".TestActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
6、打aar包

请参考android使用maven-publish打jar包和aar包并上传到本地maven仓库 这篇文章

Unity端
1、新建文件夹,引入aar包

在这里插入图片描述

2、引入清单文件

在这里插入图片描述

注意1

在这里要注意复制出来的清单文件和aar包里面清单文件的不同之处

在这里插入图片描述

  • 包名不同,unity的清单文件里面的包名要和一会后面设置的包名保持一致,但是不能和aar里面的包名一样
  • 新增app_name在unity的清单文件的application标签上新增label
  • 删除启动项,unity的清单文件里删除启动项,因为aar的包里已经有了,所以删除
3、写方法调用
	public void test1() {
		AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
		AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
		string str = jo.Call<string>("getPath");
		Text.text = "方式一:" + str;
	}
4、修改unity的包名

在这里插入图片描述

5、 打包

在这里插入图片描述

方式二
android端
1、新建library库
2、写方法
public class Utils {
	// 该方法供unity调用
    public int add(int a, int b) {
        return a + b;
    }
}
3、打aar包

步骤同方法一

Unity端
1、引入aar包
2、写代码引用
public void test2()
{
	// 通过包名+类名来获取
	AndroidJavaObject jo = new AndroidJavaObject("com.test.testlib.Utils");
	int str = jo.Call<int>("add",2,3);
	Text.text = "2 + 3 = " + str;
}

剩下其余的步骤跟 方法一 相同,这里不需要引用清单文件

参考文献

[1] Unity使用aar打出apk过程一览
[2] Unity和Android通信

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
安卓调用讯飞语音合成并制作成aarUnity使用,主要需要以下步骤: 1. 首先,需要下载并导入讯飞语音合成SDK到Android Studio项目中。可以在讯飞官方网站上下载SDK并按照官方文档的指引将其导入到项目中。 2. 在Android Studio中,创建一个Java类,作为与Unity交互的入口类。该类将用于将Unity传递的指令传递给讯飞语音合成SDK,并将结果返回给Unity。 3. 在入口类中,使用讯飞语音合成SDK提供的API,初始化语音合成引擎,并设置相关参数,例如合成音调、语速、音量等。 4. 创建一个Unity的C#脚本,用于调用安卓原生代码。在该脚本中,可以使用UnityAndroidJavaClass和AndroidJavaObject类,调用刚刚创建的入口类以及其相应的方法。 5. 在Unity中,将C#脚本附加到一个GameObject上,并在合适的时间点调用相应的方法,以触发安卓代码的执行。例如,在用户点击一个按钮时,触发语音合成。 6. 在Unity中,可以将安卓生成的aar文件放置在Assets/Plugins/Android目录下,这样Unity就能够自动识别并加载该aar文件。 7. 最后,执行Unity项目,验证安卓调用讯飞语音合成的功能。用户点击按钮后,Unity会调用对应的C#方法,然后该方法将调用对应的安卓入口类,进而启动讯飞语音合成,最终实现语音合成的功能。 通过以上步骤,我们可以将讯飞语音合成封装为一个aar文件,供Unity在安卓平台上调用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ljp345775

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值