【Android】Unity与安卓通信2(图文详细)

【Android】 Unity与安卓通信(2)

    • 安卓
      • 1.新建一个安卓项目
      • 2.新建一个Module
      • 3.在Module里新建一个java文件
      • 3.Rebuild Project
    • unity
      • 1.切换到安卓平台
      • 2.添加aar文件
      • 3.创建UI
      • 4.编写一个C#脚本
      • 5.挂在函数
    • 运行

安卓

1.新建一个安卓项目

【Android】Unity与安卓通信2(图文详细)_第1张图片

2.新建一个Module

【Android】Unity与安卓通信2(图文详细)_第2张图片

创建一个Android Library的Module,一定要更改一下左边的选项,因为as默认是选择Phone&Tablet,取一个名字unitytoandroidlib

【Android】Unity与安卓通信2(图文详细)_第3张图片

3.在Module里新建一个java文件

在Module里新建一个java文件,取名为Test

【Android】Unity与安卓通信2(图文详细)_第4张图片

在Test.class里编写如下代码

package com.example.unitytoandroidlib;

import android.util.Log;

public class Test {
    
        //无参无返回值
        public void NoParm(){
            Log.i("Unity","This is NoParm");
        }

        //有参有返回值
        public int OneParm(String val){
            Log.i("Unity",val);
            return 10;
        }

        //静态方法有参有返回值
        public static int sOneParm(String val){
            Log.i("Unity","sOneParm"+val);
            return 20;
        }
}

3.Rebuild Project

这一次我们是在创建的unitytoandroidlib下生成了aar文件

【Android】Unity与安卓通信2(图文详细)_第5张图片

unity

1.切换到安卓平台

【Android】Unity与安卓通信2(图文详细)_第6张图片

2.添加aar文件

在Assets文件夹下,创建一个Android文件夹,将在as中build出来的aar文件拖到Android文件夹下,如图所示

【Android】Unity与安卓通信2(图文详细)_第7张图片

3.创建UI

【Android】Unity与安卓通信2(图文详细)_第8张图片

【Android】Unity与安卓通信2(图文详细)_第9张图片

4.编写一个C#脚本

编写一个C#脚本,取名为Test,必须要保证C#脚本的文件名和C#脚本里的类名一致否则无法挂载到UI按钮组件上

除此之外,实例化类对象时,括号中的字符串参数要填写在as中包名及类名

【Android】Unity与安卓通信2(图文详细)_第10张图片

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void TestOne()
    {
        //实例化一个此类对象
        AndroidJavaObject jo = new AndroidJavaObject("com.example.unitytoandroidlib.Test");
        jo.Call("NoParm");
    }

    public void TestTwo()
    {
        //实例化一个此类对象
        AndroidJavaObject jo = new AndroidJavaObject("com.example.unitytoandroidlib.Test");
        int result = jo.Call<int>("OneParm","This is OneParm");
        Debug.Log("TestTwo=" + result);
    }

    public void TestThree()
    {
        //找到此类,从而调用其中的静态方法
        AndroidJavaClass jc = new AndroidJavaClass("com.example.unitytoandroidlib.Test");
        int result = jc.CallStatic<int>("sOneParm", "This is sOneParm");
        Debug.Log("TestThree=" + result);
    }
}

5.挂在函数

选中UI按钮组件,在inspector视图下,为不同的组件挂载不同的函数达到函数监听响应的功能

【Android】Unity与安卓通信2(图文详细)_第11张图片

运行

【Android】Unity与安卓通信2(图文详细)_第12张图片

你可能感兴趣的:(Android基础入门,ARFoundation,java,android-studio,unity)