1. 程式人生 > 其它 >(轉)Unity3d Android SDK 接入方法詳解

(轉)Unity3d Android SDK 接入方法詳解

缺少SDK接入經驗,可能都不知道要如何在android中呼叫Unity裡的方法,這篇文章就給大家分享下接入Android SDK的方法,和怎麼去做一個方便Unity接入的SDK。 一、首先要掌握一些Unity的基礎知識 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) 分析一下安卓工程的目錄
  • src:寫自定義的方法,與unity直接互動的地方
  • libs:存放第三方Jar包,即Unity Libs資料夾下的Jar
  • 資源目錄,一般需要全部copy到Unity Android目錄下
  • 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上的腳本里的方法名,第三個是方法引數。 6. AndroidManifest.xml有必要了解一下,這個檔案是Android應用的入口檔案 7. 最後用unity打出APK包,放手機上就可以測試了,編輯器狀態下,Plugin裡是不會被啟用的,所以要放在手機上測試。 需要注意的3點:
  • 包名要一致
  • 安卓裡的資源要放在 Assets->Plugins->Android資料夾中
  • Eclipse匯出Jar包時不需要把libs資料夾下的classes.jar包和android-support-v4.jar包一起匯出,因為unity裡已經有這些jar包了,當然如果你非要打進來,再放到unity plugins資料夾下,也沒關係,因為最終打出的apk包只會包含一份的。
來自:https://blog.csdn.net/huaixiaoniu/article/details/79225320

原文連結

著作權歸作者所有,商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。