Unity和安卓通信之Unity导出安卓工程包在AndroidStudio里添加代码后发布APK

          先在Unity里写测试脚本:


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AndroidTest : MonoBehaviour {

    public InputField _field;
    public Text _text;

    /// <summary>
    /// Unity调用安卓方法
    /// </summary>
    public void OnClickBtn1() {
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        jo.Call("U3D_ShowToast1");
    }
    /// <summary>
    /// 给安卓传递参数
    /// </summary>
    public void OnClickButton2()
    {
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        jo.Call("U3D_ShowToast2", _field.text);
    }
    /// <summary>
    /// 接收安卓返回值
    /// </summary>
    public void OnClickButton3()
    {
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        _text.text = jo.Call<string>("U3D_GetValue");
    }
    /// <summary>
    /// 安卓调用Unity方法
    /// 这里通过 Unity调安卓 安卓调Unity 
    /// </summary>
    public void OnClickButton4()
    {
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        jo.Call("U3D_ShowToast3", "Canvas", "BecallFunc","123456789");
    }
    //安卓调Unity的方法
    private void BecallFunc(string _contest) {
        SetUILabelText(ref _contest);
    }

    private void SetUILabelText(ref string value)
    {
        _text.text = value;
    }
}

       四个按钮绑定方法,进行包名设置后导出工程:

导出后如下:

打开Android Studio :

添加脚本:

 public void U3D_ShowToast1(){

        Toast.makeText(this,"U3D_ShowToast1",Toast.LENGTH_LONG).show();
    }
    public void U3D_ShowToast2(String pInput){
        Toast.makeText(this,pInput,Toast.LENGTH_LONG).show();
    }
    //unity调用android的方法返回一个字符串
    public String U3D_GetValue(){
        return "hmy";
    }
    //android调用unity的方法
    //第一个参数是unity中的物体对象名字
    //第二个参数是函数名
    //三个参数是传给函数的参数
    public void U3D_ShowToast3(String objName,String funname, String info){
        UnityPlayer.UnitySendMessage(objName,funname,"Info:"+info);
    }

菜单找到Build—》Build APK 。打包成功后把APK安装到设备进行测试。

测试视频:

Unity导出为安装工程并发布APK后测试.mp4

猜你喜欢

转载自blog.csdn.net/hemiaoyuan1989/article/details/105734995