AndroidStudio2020打Arr包给Unity2020使用

这篇博客介绍了如何在Android Studio中创建一个lib模块,编写Java类,然后打包成aar库。接着,展示了在Unity中如何创建工程,编写测试脚本TestP.cs以调用Android库的方法,并将aar库导入Unity。最后,调整Unity的minSDK版本以匹配Android库,并运行工程。整个过程详细阐述了Android与Unity之间的交互实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android studio部分

创建一个Android工程

 

  创建一个lib模块

 

创建一个java类

将以下代码copy到java类中

package com.defaultcompany.libforunity;
import android.app.Activity;
import  android.widget.Toast;

public class PluginInstance {

    public int Add(int i,int j){
        return  i+j;
    }

    private static Activity unityActivity;

    public static void  receiveUnityActivity(Activity tActivity){
        unityActivity=tActivity;
    }

    public void Toast(String msg){
        Toast.makeText(unityActivity,msg,Toast.LENGTH_SHORT).show();
    }
}

build module

 

build 成功之后在libforunity下的build-output-aar中找到对应的aar包,准备导入unity;

  

 Unity部分

创建unity工程

创建一个测试脚本TestP.cs

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

public class TestP : MonoBehaviour
{
    public Text t;

    AndroidJavaClass unityClass;
    AndroidJavaObject unityActivity;
    AndroidJavaObject _pluginInstance;
    // Start is called before the first frame update
    void Start()
    {
        InitalizePlugin("com.defaultcompany.libforunity.PluginInstance");
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    void InitalizePlugin(string pluginName)
    {
        unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        unityActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity");
        _pluginInstance = new AndroidJavaObject(pluginName);
        if (_pluginInstance ==null)
        {
            Debug.Log("Plugin Instance Error");
        }
        _pluginInstance.CallStatic("receiveUnityActivity", unityActivity);
    }

    public void Add()
    {
        if (_pluginInstance !=null)
        {
            var result = _pluginInstance.Call<int>("Add", 5, 6);
            //Debug.Log("Add Result from Unity:" + result);
            t.text = "Add Result from Unity:" + result;
        }
    }

    public void Toast()
    {
        if (_pluginInstance!=null)
        {
            _pluginInstance.Call("Toast","Hi from Unity");
        }
    }
}

场景中创建两个button ,一个text,并将button事件与脚本绑定,text也绑定给脚本

 将Androidstudio的aar包导入到unity

 上面创建lib库用的minSDK为23,所以将unity的minSDK也改的要不小于23

 

build and run 

 

觉得有帮助到你的话,给博主一个赞+关注呗。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值