2016-07-06 81 views
1

我在Android Studio上創建了一個項目(接收恆定數據流的藍牙服務器套接字),我想知道是否可以將它轉換爲可用於Unity的.dll ? Unity使用Javascript,但代碼是用Java編寫的,但是我明白如果我把它變成一個庫,Java可以嵌入到JavaScript中。我做了大量的研究並使用gradle導出.jar文件,然後我讀到可以使用IKVM將.jar轉換爲.dll,但有人說IKVM不能用於android項目?這是真的?如果是的話,我可以在Unity上使用這個類嗎?在Unity中使用Android Studio上的類

回答

0

我就不會擔心創建一個dll,一個罐子就足夠了。

最終目標是生成your_plugin.jar文件,並將其移動到Assets/Plugins/Android/your_plugin.jar。然後你可以通過JNI使用C#(或者JavaScript)來訪問它。

我建議以下this教程。

jist是在你的jar文件中擴展默認的UnityPlayerActivity並創建你需要的任何方法。我會從簡單的東西開始,只是返回一個字符串。生成jar文件並將其放入Assets/Plugins/Android。在同一個目錄中創建一個AndroidManifest.xml,這會導致Unity使用擴展的Activity而不是默認的啓動。在Unity端,請參考您擴展的活動的當前實例,並調用您的方法,如下所示:

// get a reference to the class 
    AndroidJavaClass unity = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); 

    // get a reference to the class instance from a static variable 
    AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject> ("currentActivity"); 

    // call a method in your UnityPlayer class that returns a string 
    String s = currentActivity.Call<string>("myJavaMethodReturningString");