首先介紹一點關於Android與unity通信的知識:
完成通信主要靠unity中的class.jar包(在unity的安裝目錄下)。
在unity中調用android的方法:
jo.call("方法名"[,參數名]) 其中[]代表可有可無。
在endroid中調用unityu的方法:
導入class.jar包,繼承UnityPlayerActivity,使用UnityPlayer.UnitySendMessage("游戲對象名","unity中的方法名","參數")
現在,我們已經有基礎了,可以動手操作了
1.eclipse中新建Android工程,導入Unity安裝目錄下的class.jar類,添加MainActivity.java代碼:

package com.example.test; import com.unity3d.player.UnityPlayer; import com.unity3d.player.UnityPlayerActivity; import android.os.Bundle; public class MainActivity extends UnityPlayerActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public void Send() { UnityPlayer.UnitySendMessage("aaa", "AndroidCallBack", "okokoko"); } }
從eclipse中導出jar包
2.Unity中,新建工程,
編寫EclipseCall.cs代碼如下:

using UnityEngine; using System.Collections; using UnityEngine.UI; using System; public class EclipseCall : MonoBehaviour { private AndroidJavaClass jc; private AndroidJavaObject jo; private Text text; private Button btn; //單例模式 private static EclipseCall _instance; public static EclipseCall Instance { get { if (_instance == null) { _instance = new EclipseCall(); } return _instance; } } void Start() { text = GameObject.Find("aaa").GetComponent<Text>(); btn = GameObject.Find("Button").GetComponent<Button>(); this.name = "aaa"; _instance = this; jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); } public void ClickBtn() { jo.Call("Send"); } public void AndroidCallBack(String str) { text.text = str; } }
將eclipse中導出的jar包拖進libs文件中
打包:
下面給大家捋一下思路:
從下圖中可以看出,在Unity中通過按鈕點擊事件調用eclipse中的Send方法,eclipse中Send方法又調用了unity的AndroidCallBack方法,通過eclipse傳遞參數到unity中,實現將參數顯示在Text游戲對象身上。
運行,點擊后的UI:
最后,給大家總結幾點注意事項:
1.記得點擊eclipse菜單欄的Project——>Properties——>Java Build Path_》Add External JARs...——>選擇Unity安裝目錄下的class.jar——>Apply——>Apply and Cliose
2.**Activity.java必須繼承Unity,且要實現Android與Unity的通信,必須保證一個Android項目只有一個**Activity.java類
3.unity與anddroid通信,必須從unity端打包,即上述方式。
4.調用Unity的函數時記得參數的選擇,注意函數名,游戲對象。
5.腳本的綁定:unity中注意上面第4的游戲對象,必須綁定有調用的函數名的腳本。
6.unity打包的包名必須和eclipse中的對應,打包時記得添加場景。
7.如果在實際開發中(接SDK),打包是還必須注意填寫keystore,密碼。具體方法參考http://www.cnblogs.com/shirln/p/8384438.html