一:Unity与Android的交互。
一:首先安装Android Studio 新建一个项目。然后在新建项目的src目录下新建一个java类:例如:Test如下图所示.
Test中示例代码如下:
public class Test {
public static String LOG="LOG";
public String name=null;
public static void SetLOG(String log){
LOG=log;
Log.d(LOG,log);
}
public static String GetLog(){
Log.d(LOG,LOG);
return LOG;
}
public void SetName(String name){
this.name=name;
Log.d(LOG,name);
}
public String GetName(){
Log.d(LOG,name);
return name;
}
//显示文字弹窗在安卓设备上,例如清理手机进程后弹出的那个框显示清除多少进程
public void ShowMessage(String message){
Toast.makeText(UnityPlayer.currentActivity,message,Toast.LENGTH_LONG).show();
}
}
二:代码写好之后,点击Build/Make Project 会在app下生成一个build文件。
三:找到build文件下的jar包导入到Unity中(在根目录新建一个Plugins文件夹)。
四:在unity中新建脚本,如下代码。
public class UnityCallJava : MonoBehaviour
{
/// <summary>
/// 调用静态的字段和静态的方法
/// </summary>
private AndroidJavaClass javaClass;
/// <summary>
/// 调用非静态的字段和非静态的方法
/// </summary>
private AndroidJavaObject javaObject;
public InputField setLogFile_Input;
public InputField GetLogFile_Input;
public InputField setNameFile_Input;
public InputField GetNameFile_Input;
public InputField ShowMessage_Input;
void Start()
{
//com.example.unitycalljava.Test:包名+类名
javaClass = new AndroidJavaClass("com.example.unitycalljava.Test");
javaObject = new AndroidJavaObject("com.example.unitycalljava.Test");
}
/// <summary>
/// 调用java脚本里的SetLOG静态方法
/// </summary>
public void SetLOG()
{
//方法名 ,参数
javaClass.CallStatic("SetLOG",setLogFile_Input.text);
}
/// <summary>
/// 调用java脚本里的GetLOG静态方法
/// </summary>
public void GetLOG()
{
GetLogFile_Input.text = javaClass.CallStatic<string>("GetLog");
}
/// <summary>
/// 调用java脚本里的SetName非静态方法
/// </summary>
public void SetName()
{
javaObject.Call("SetName", setNameFile_Input.text);
}
/// <summary>
/// 调用java脚本里的GetName非静态方法
/// </summary>
public void GetName()
{
GetNameFile_Input.text = javaObject.Call<string>("GetName");
}
/// <summary>
/// 显示弹窗
/// </summary>
public void ShowMessage()
{
javaObject.Call("ShowMessage", ShowMessage_Input.text);
}
}
五:具体基本方法如上 所示,测试时需要打包进行测试。
测试界面UI:
二Android 与Unity的交互。
一:找到你unity安装目录下的jar包导入到Android项目中。
我的unity中jar包的路径:C:\Program Files\Unity\Hub\Editor\2019.4.2f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
导入项目的位置:如图所示文件夹下
二:点击导入的jar包右键点击Add As Library…按钮。
三:直接在需要调用Unity的java类中使用UnityPlayer下的方法即可。
例如:
//需要三个string类型的参数,第一个参数:需要调用的方法所在脚本挂载的gameobject的名字。
//第二个:方法的名字
//第三个:传递的参数,如果没有参数传递("")空。
UnityPlayer.UnitySendMessage("Canvas","GetName","");
这句话是调用上面unity代码中的GetName方法。
如果想具体学习可以参考下面链接视频进行学习。
Unity与Android,ios(一)打包与交互