0

Moodstocks SDK を使用して画像認識アプリの統合に取り組んでいます。moodstocks でスキャナーを起動するには、surfaceview (Camera) を使用する必要があります。Eclipse で実行するとすべて正常に動作しますが、unity3D を使用したいので作成中です一種のゲームで、

だから私は日食プロジェクトをJARとして作成し、ユニティにインポートしました。ユニティスクリプトからJavaクラスのメソッドを呼び出し、camera.Mainをそれに渡そうとしています

そのためのガイドラインを教えていただければ

ありがとう、

4

2 に答える 2

0

Java プラグインを作成する方法はいくつかありますが、いずれの場合も、プラグインの .class ファイルを含む .jar ファイルが作成されます。1 つの方法は、JDK をダウンロードしてから、コマンド ラインから javac を使用して .java ファイルをコンパイルすることです。これにより、jar コマンド ライン ツールを使用して .jar にパッケージ化できる .class ファイルが作成されます。もう 1 つのオプションは、Eclipse IDE を ADT と一緒に使用することです。

Java プラグイン (.jar) をビルドしたら、それをAssets->Plugins->AndroidUnity プロジェクトのフォルダーにコピーする必要があります。Unity は、残りの Java コードと一緒に .class ファイルをパッケージ化し、Java Native Interface (JNI) を使用してコードにアクセスします。JNI は、Java からネイティブ コードを呼び出す場合と、ネイティブ コードから Java (または JavaVM) と対話する場合の両方で使用されます。

ネイティブ側から Java コードを見つけるには、Java VM にアクセスする必要があります。幸いなことに、C/C++ コードに次のような関数を追加することで、そのアクセスを簡単に取得できます。

jint JNI_OnLoad(JavaVM* vm, void* reserved) {
  JNIEnv* jni_env = 0;
  vm->AttachCurrentThread(&jni_env, 0);
} 

これだけで、C/C++ から Java を使い始めることができます。JNI を完全に説明することは、このドキュメントの範囲を超えています。ただし、通常、これを使用するには、次の例に示すように、クラス定義を見つけ、コンストラクター () メソッドを解決し、新しいオブジェクト インスタンスを作成する必要があります。

jobject createJavaObject(JNIEnv* jni_env) {
  // find class definition
  jclass cls_JavaClass = jni_env->FindClass("com/your/java/Class"); 
  // find constructor method        
  jmethodID mid_JavaClass = jni_env->GetMethodID (cls_JavaClass, "<init>",  "()V");     
  // create object instance
  jobject obj_JavaClass = jni_env->NewObject(cls_JavaClass, mid_JavaClass);     
  // return object with a global reference
  return jni_env->NewGlobalRef(obj_JavaClass);                      
} 

この説明は、いくつかの例も書かれているこの情報ページからのものです。ここを見てみるといいよ!これも一読の価値ありかもしれません。

于 2013-04-08T07:09:37.830 に答える
0

免責事項: 私は Moodstocks で働いています。

ScannerSessionMoodstocks SDK for Androidのオブジェクトは、従来の Java アプリのコンテキストで、多くの「技術的な」問題を単独で処理する、高レベルで使いやすいラッパーになるように設計されています。具体的には、カメラを初期化し、提供された でプレビューし、SurfaceViewカメラ フレームを Moodstocks SDK にディスパッチします。

私は Unity を自分で使用したことがないので、詳細に飛び込むことはできませんが、Unity には独自の初期化方法とカメラの使用方法があるという事実を考えると、このScannerSessionオブジェクトをバイパスして、 Moodstocks SDK の下位レベルの関数をヒットします。Unity を使用してカメラ フレームを取得し、Moodstocks SDKScannerオブジェクトに手動でフィードする方法を確認してください。で行われていることからインスピレーションを得て、そのScannerSession方法を確認できます。

お役に立てれば!さらにアドバイスが必要な場合は、Moodstocks ヘルプセンターで質問してください。

于 2013-04-08T10:34:34.593 に答える