1. 程式人生 > >Unity中sdk接入的學習筆記--Plugins

Unity中sdk接入的學習筆記--Plugins

跟著新總學習了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的方法
    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      
        }
8、呼叫Android方法

(1)直接呼叫Call

if (jo != null) {
            jo.Call<int>("test",150);//test是方法名,150是傳值
        }
(2)需呼叫ui執行緒的情況
 if (jo != null)
        {
            jo.Call("runOnUiThread", new AndroidJavaRunnable(
                () =>
                {
                    jo.Call<int>("test",150);
                }
                ));
        }
9、在Unity裡把指令碼掛在GameObject上。打包輸出測試。