Unity 및 Android 통신: Unity는 Android 프로젝트 패키지를 내보내고 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 스튜디오를 엽니다.

 

스크립트 추가:

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

메뉴에서 빌드를 찾으세요—》빌드 APK. 성공적으로 패키징한 후 테스트를 위해 기기에 APK를 설치합니다.

테스트 비디오:

Unity는 이를 설치 프로젝트로 내보내고 test.mp4 전에 APK를 게시합니다.

 

 

 

추천

출처blog.csdn.net/hemiaoyuan1989/article/details/105734995