Android调用Unity界面实现教程

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

AS端配置

1.AS新建一个项目

unity android调用 android调用unity界面_unity android调用

,Name,PackageName随意。2.在新建好的项目app处点击右键创建一个new module,后面我们导出的.aar就是它,

unity android调用 android调用unity界面_unity3d_02

,注意这里一点要选AndroidLibrary,ModuleName和packageName随意,后面用的时候可以在导出的地方看这个名字,unity里调用的时候得和这个packageName一致,后面再说。3.在新建的NewModule

unity android调用 android调用unity界面_android_03

的这个路径下右键New一个Javaclass

unity android调用 android调用unity界面_unity3d_04

,注意要有这种层级目录,上面得选

unity android调用 android调用unity界面_unity3d_05

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;
    }
    
    

好,然后

unity android调用 android调用unity界面_unity android调用_06

将这个module 打包出去,几秒钟就成功了

unity android调用 android调用unity界面_unity android调用_07

,得到了一个.aar文件,至此AS里的工作就完成了,再来看Unity里。

Unity里

1.将刚刚打包出来的.aar文件拖到

unity android调用 android调用unity界面_unity3d_08

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看运行结果

unity android调用 android调用unity界面_unity3d_09

目录

AS端配置

Unity里

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

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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空