缺少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