阅读 170

unity端和安卓端的交互,使用unity里的API调用AudioStudio里的方法

unity端和安卓端的交互,使用unity里的API调用AudioStudio里的方法

之前看了很多unity和安卓AS的交互文章,后面自己试了试自己的想法,感觉比其他的都要简便一些,特此记录下来。


AS端配置

1.AS新建一个项目,Name,PackageName随意。


2.在新建好的项目app处点击右键创建一个new module,后面我们导出的.aar就是它,,注意这里一点要选AndroidLibrary,ModuleName和packageName随意,后面用的时候可以在导出的地方看这个名字,unity里调用的时候得和这个packageName一致,后面再说。


3.在新建的NewModule的这个路径下右键New一个Javaclass,注意要有这种层级目录,上面得选Project.


4.我们这里新建一个JavaClass叫Test,里面写一个创建一个方法,我们先来一个无参,无返回值的方法,命名为AsFunC.里面也很简单,输出一句话就行


 public  void  AsFunC(){

        Log.d("yx","我是AS的方法里的内容");

    }

再来一个有参,无返回值的方法


public  void  AsFunCHavePar(String str){

        Log.d("yx","我是AS的方法里的内容"+"Unity里传入的参数"+str);

    }

再来一个无参,有返回值的方法


public  String  AsFunCHaveReturnType(){

        return "我是AS的有返回值的方法";

    }

最后再来一个有参数有返回值的方法


public  String  AsFunCHaveReturnType(String str){

        return "我是AS的有返回值的方法"+"Unity里传入的参数"+str;

    }

好,然后 将这个module 打包出去,几秒钟就成功了,得到了一个.aar文件,至此AS里的工作就完成了,再来看Unity里。


Unity里

1.将刚刚打包出来的.aar文件拖到Assets/Plugins目录下,默认是没有这个Plugins目录的需要自己创建。


2.新建一个脚本,里面写一个方法。


using System.Collections;

using System.Collections.Generic;

using UnityEngine;

 

public class UnitySc : MonoBehaviour

{

    public void CallAsFunC()

    {

        //这里括号里的参数填入导出的module的packageName和Class的名字,我这里是

          com.yx.mylibrary.Test

        using (var asClass = new AndroidJavaObject("com.yx.mylibrary.Test"))

        {

            

        }

    }

}

using里面的内容也很简单


using (var asClass = new AndroidJavaObject("com.yx.mylibrary.Test"))

        {

            asClass.Call("AsFunC");//调用的无参无返回值的方法

            asClass.Call("AsFunCHavePar", "Unity里传入");//调用的有参无返回值的方法,参数为“Unity里传入”

            Debug.Log(asClass.Call<string>("AsFunCHaveReturnType"));//Debug里调用的无参有返回值的方法

            Debug.Log(asClass.Call<string>("AsFunCHaveReturnType", "Unity里传入"));//Debug里调用的有参有返回值的方法

        }

 注意Call方法的第一个参数,参数应该为AS那边的方法的名字 不要输入错误了。


3.创建一个按钮,上面绑上这个方法,好然后直接打包为安卓项目,连上测试机运行,在AS里logcat看运行结果


目录


AS端配置


Unity里


 


结果和我们AS里写的方法里也一致,好了就这样就可以在unity里调用AS的Java方法了。这也只是一种方式而已,大家还有其他方式也可以一起讨论。


后面有空再说说AS里调用unity的方法。 

————————————————

版权声明:本文为CSDN博主「a6110519」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/a6110519/article/details/116597050


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐