Unity中sdk接入的學習筆記--Plugins
阿新 • • 發佈:2019-02-02
跟著新總學習了sdk的接入,心得一點點整理下哈。
1、在Eclipse新建一個工程,然後將unity的自帶lib,data/playbackEngines/adnroidplayer/release/bin/classes.jar(5.0版本的檔案路徑)拷貝到工程的lib下。
2、MainActivity 要extend UnityPlayerActivity
3、新建一個方法如
public int test (int flag)
{
Log.i("test","flag = "+flag);
return 150831;
}
4、可以命令打包jar;
使用程式碼
jar cvf test.jar ./com
當然也可以直接用Eclipse的Export來匯出。
(在bin路徑下)在com下新建cmd檔案,執行程式碼就可以了(只需要打包一個MainActivity)(如果存在多餘檔案就清掉);
然後將jar檔案放在Unity中的Plugins/Android/bin目錄下
5、然後將AndroidManifest與res資料夾放在Plugins/Android下
6、巨集定義:
#if UNITY_ANDROID
#endif
7、在unity的指令碼新增呼叫Android的方法
8、呼叫Android方法AndroidJavaClass jc = null; AndroidJavaObject jo = null; void Awake() { #if UNITY_ANDROID if (jc == null) { jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); } #endif }
(1)直接呼叫Call
if (jo != null) {
jo.Call<int>("test",150);//test是方法名,150是傳值
}
(2)需呼叫ui執行緒的情況9、在Unity裡把指令碼掛在GameObject上。打包輸出測試。if (jo != null) { jo.Call("runOnUiThread", new AndroidJavaRunnable( () => { jo.Call<int>("test",150); } )); }