2016-07-06 6 views
1

Androidスタジオ(一定のデータストリームを受信するBluetoothサーバーソケット)でプロジェクトを作成しましたが、これをUnityで使用できる.dllにすることが可能かどうかは疑問でした? UnityはJavascriptを使用していますが、コードはJavaで書かれていますが、私はJavaScriptをライブラリに組み込むとJavaをJavaScriptに埋め込むことができます。かなりの量の研究を行い、.jarファイルをエクスポートするためにgradleを使用して、次に.jarを.dllに変換するためにIKVMを使用できることを読んだが、誰かがIKVMをアンドロイドプロジェクトに使用できないと言った。これは本当ですか?もしそうなら、ユニティにクラスを使用できる方法はありますか? JavaScriptのユニティ3Dに加えて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の拡張アクティビティがデフォルトの代わりに起動されます。 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"); 
関連する問題