目前大家看到大多数Unity与Android通信的教程,可能使用的不是最新版的Unity,或者是用Eclipse配置Android,为此本文就详细和大家介绍下android studio创建的Android工程在unity实现相互通信。
需要安装的软件:Android Studio、Unity
一、开启Android的一个工程,点击File下新建如下图所示New Module。
二、选择Android Library。
三、为Library命名,在这里我命名为BmobPay。
四、选中如下图的两个。xml文件,右键选择点击delete,删除。
五、安装unity,在unity的安装目录下,找到以下图文件路径,复制classes.jar文件
六、将上个步骤的classes.jar文件粘贴到Project视图下的如下图libs文件下,点击右键选择add as library。
七、打开MainActivity.java文件,按如下图修改删除
package com.liujunliang.bmobpay;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
}
//unity将会调用addNumber函数
public int addNumber(int a,int b)
{
//与unity通信,调用untiy的方法
//参数一:挂件游戏对象
//参数二:挂件函数方法名
//参数三:函数方法参数
UnityPlayer.UnitySendMessage("Main Camera","PrintText","http://www.liujunliang.com.cn");
return a+b;
}
}
八、修改该文件的父类,继承于UnityPlayerActivity。
九、之后运行该模块,选择Build,按如下图选择运行。
十、运行完成之后,将生成debug文件,按下图路径找到bundles,右键选择点击Show in Explorer。
十一、将弹出文件管理,进入该目录下的libs文件夹。
十二、该目录的classes.jar是之前我们在unity里加入的jar包文件,右键选择删除删除。
十三、将如下图的classes.jar文件添加到libs文件夹下,这里的classes.jar文件时运行后android studio的jar包文件。
十四、这是开启unity创建一个工程,在工程的如下图目录下创建如下图所示的目录。
十五、按如下图选择三个文件拖动到Android目录下。
十六、创建一个C#脚本组件,这里我命名为UnityCallAndroid,并将这个组件挂在到Main Camera游戏对象中。
UnityCallAndroid.cs
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class UnityCallAndroid : MonoBehaviour {
public Text text;
// Use this for initialization
void Start ()
{
}
public void OnClicked()
{
#region 调用安卓工程函数
AndroidJavaClass AJC = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject AJO = AJC.GetStatic ("currentActivity");
int result = AJO.Call ("addNumber",10,30);
text.text += result.ToString ();
#endregion
}
// Update is called once per frame
void Update ()
{
}
#region Android工程调用unity方法
public void PrintText(string str)
{
text.text += str;
}
#endregion
}
十七、选择unity的File中的Build Settings,弹出如下图对话框。
十八、找到如下图的Bundle Identifier 对内容进行修改。
十九、回到android工程如下图的。xml文件,复制。
二十、粘贴。
二十一、使用usb线连接android手机,如果点击Build And Run,Build完成后将自动在安卓手机开启运行。
倘若选择Build可以不用连接安卓手机,自行手动发送到手机进行检测。
二十二、在这里使用360手机管家了演示结果,开启项目。
二十三、在这里就大功告成了,点击按钮,将显示调用android方法结果以及android调用unity方法结果。