2016-07-30 24 views
0

Ich erstelle eine Anwendung mit Kudan, wo ein Foto (ein 2D-Sprite) durch markerloses Tracking erscheint. Basierend auf dem Beispielprojekt habe ich erfolgreich Anpassungen vorgenommen, so dass die 2D-Ebene immer senkrecht zur Kamera steht und in der von mir gewünschten Position auf dem Bildschirm platziert wird. Wirklich wunderschön!Kudan in Unity: Wie man markerloses Tracking stoppt oder zurücksetzt?

Aber ich bin nicht in der Lage, herauszufinden, wie Sie das Tracking über ein Skript neu starten/zurücksetzen. Ich kann immer wieder einen Neustart des Trackings erzwingen, indem ich die Kamera blockiere oder das Handy schüttele, aber ich möchte es über einen Button tun - es ist genau das gleiche Verhalten, das ich im "ArbiTrack Basics" Guide für Android und iOS beschrieben habe , aber ich kann es nicht in Unity reproduzieren. Zu welchem ​​Skript sollte ich einen Stopp-Tracking-Befehl senden, damit die Tracking-Instanz neu gestartet wird (genau der gleiche Effekt wie das Blockieren der Kamera beim Ausführen eines der Unity-Beispielprojekte im markerlosen Modus).

Die Situation ist hier beschrieben für Android Codierung: https://wiki.kudan.eu/ArbiTrack_Basics#Stopping_ArbiTrack

sagt, wo es diese drei Dinge zu nennen:

// Stopp ArbiTrack arbiTrack.stop();

// Zielknoten anzeigen arbiTrack.getTargetNode(). SetVisible (true);

// Ändern Sie Enum und Label, um den ArbiTrack-Status wiederzugeben arbitrack_state = ARBITRACK_STATE.ARBI_PLACEMENT;

Antwort

0

Ich habe einen Weg gefunden, dies zu tun - obwohl ich nicht sicher bin, dass es ideal ist.

Mit dem TrackingMethodMarkerless.cs-Skript scheint es, dass die StopTracking() nicht funktioniert - es deaktiviert die Aktualisierung der Verfolgung, aber tatsächlich deaktiviert die Instanz der Erkennung nicht. Aber wenn man eine Notiz von ihm, habe ich eine if-Anweisung an die ProcessFrame() Funktion:

//

if (disableMarkerless == false)

trackable.isDetected = _kudanTracker.ArbiTrackIsTracking();

sonst

trackable.isDetected = false;

//

nun deaktiviert den disableMarkerless bool operator Ändern des Tracking.

+0

Ja, das Objekt ist nur deaktiviert, wenn das Tracking "verloren" ist, aber nicht, wenn es manuell gestoppt wird. Dies kann für eine zukünftige Version geändert werden. – DisturbedNeo