前言:以前沒接過SDK,總覺得很高深莫測的樣子,但真正接觸之後,發現并不是那麼可怕,重要的是要學會android怎麼調用Unity裡的方法,Unity怎麼調用android裡的方法,當然, 現在學的還比較膚淺,繼續加油喽。>=。=<
一,首先要掌握一些Unity的基礎知識
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICdzFWRoRXdvN1LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9UFWhVXOXlFcohVYoZFShZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DNwIjNyETNwETMwIDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
Plugins: 插件目錄,編譯項目時優先編譯
Android: 存放安卓需要的檔案等
bin: 存放自己編寫的Jar包
libs: 存放第三方編譯的包
二,Eclipse中需要執行的步驟:
1,用eclipse建立安卓工程:
(1) 點選File->New->Android Application Project
Minimum Required SDK:最小的SDK版本
需要特别注意的是,Package Name:com.wwp.mydemo,需要跟Unity中 Bundle Identifier的名稱保持一緻。
(2),分析一下安卓工程的目錄
(1)src:寫自定義的方法,與unity直接互動的地方
(2)libs:存放第三方Jar包,即Unity Libs檔案夾下的Jar
(3)資源目錄,一般需要全部copy到Unity Android目錄下
(4)AndroidManifest.xml
2,導入Unity中的Jar包,實作Unity腳本和Eclipse腳本的互相
将classes.jar 拖到Eclipse中的libs檔案夾下
3,打開src->com.wwp.mydemo->MainActivity.java檔案開始修改
把不需要的方法先注釋掉了,紅框中是修改的部分,因為之前有把Unity中的classes.jar包導進來,是以這裡用到UnityPlayerActivity。
4,用Eclipse導出Jar包(放到Unity項目中)
file->Export
5,将Eclipse裡的res檔案夾和AndroidManifest.xml檔案放進unity Assets->Plugins->Android檔案夾中
Canvas上挂一個Test腳本,添加一個button按鈕
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class test : MonoBehaviour {
AndroidJavaClass jc;
AndroidJavaObject jo;
public Text name;
void Start()
{
jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
}
public void OnBtnClick()
{
jo.Call("UnityUseEclipse");
}
public void andToU3dCallback(string str)
{
name.text = str;
}
}
下面解釋一下unity的代碼 Call: Unity調用Android的方法,參數就是方法名。
android 調用Unity的方法 UnityPlayer.UnitySendMessage("Canvas", "andToU3dCallback", "exit");
第一個參數是unityobj的名字,第二個參數是挂在obj上的腳本裡的方法名,第三個是方法參數。
5,AndroidManifest.xml有必要了解一下,這個檔案是Android應用的入口檔案
6,最後用unity打出APK包,放手機上就可以測試了,編輯器狀态下,Plugin裡是不會被啟用的,是以要放在手機上測試
需要注意的兩點:1,包名要一緻 2,安卓裡的資源要放在 Assets->Plugins->Android檔案夾中 3,Eclipse導出Jar包時不需要把libs檔案夾下的classes.jar包和android-support-v4.jar包一起導出,因為unity裡已經有這些jar包了,當然如果你非要打進來,再放到unity plugins檔案夾下,也沒關系,因為最終打出的apk包隻會包含一份的。