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
觉得有帮助到你的话,给博主一个赞+关注呗。