0

写真 (2D スプライト) がマーカーレス トラッキングで表示されるアプリケーションを Kudan で作成しています。サンプル プロジェクトに基づいて、2D 平面が常にカメラに対して垂直になり、画面上の希望の位置に配置されるように調整することに成功しました。本当に素晴らしい!

しかし、スクリプトを使用して追跡を再開/リセットする方法がわかりません。カメラをブロックしたり、電話を振ったりすることでいつでも追跡を強制的に再開できますが、ボタンを使用してやりたいのですが、これは、Android および iOS の「ArbiTrack Basics」ガイドで説明されている動作とまったく同じです。 、しかし、Unityで再現できません。追跡インスタンスを再起動するには、どのスクリプトに追跡停止コマンドを送信すればよいですか (マーカーレス モードでサンプル Unity プロジェクトの 1 つを実行しているときにカメラをブロックするのとまったく同じ効果です)。

Android コーディングの状況は、https ://wiki.kudan.eu/ArbiTrack_Basics#Stopping_ArbiTrack で説明されています。

これらの 3 つのことを次のように呼びます。

// ArbiTrack を停止します arbiTrack.stop();

// ターゲットノードを表示 arbiTrack.getTargetNode().setVisible(true);

// ArbiTrack の状態を反映するように列挙型とラベルを変更します。 arbitrack_state = ARBITRACK_STATE.ARBI_PLACEMENT;

4

1 に答える 1

0

これを行う 1 つの方法を見つけましたが、それが理想的かどうかはわかりません。

TrackingMethodMarkerless.cs スクリプトを見ると、StopTracking() が機能していないようです。追跡の更新を無効にしますが、実際には検出のインスタンスを無効にしません。しかし、それに注意して、ProcessFrame() 関数に if ステートメントを追加しました。

///

if (disableMarkerless == false)

trackable.isDetected = _kudanTracker.ArbiTrackIsTracking ();

そうしないと

trackable.isDetected = false;

///

現在、disableMarkerless bool 演算子を変更すると、追跡が無効になります。

于 2016-08-01T06:14:28.933 に答える