2017-04-03 3 views
4

Wie kann man am besten feststellen, ob es sich bei SteamVR_TrackedObject um einen Vive Controller und einen Vive Tracker handelt?Wie kann man feststellen, ob ein SteamVR_TrackedObject ein Vive Controller oder ein Vive Tracker ist?


Wenn 0 und 1 Controller Tacker gepaart:

Der Tracker ist als Controller (right) des CameraRig genommen.

Wenn 1 Controller und 1 Tacker gepaart:

Der Tracker-zu-Gerät gesetzt ist 2.

Wenn 2-Controller und Tacker 1 gepaart ist:

ein drittes Erstellen SteamVR_TrackedObject und es in die Anordnung der setzen. Auch wenn ein Controller das Tracking verliert, tut dies auch der Tracker.


In jedem Szenario endet der Tracker eine andere SteamVR_TrackedObject.index sein werden. Was ist der beste Weg zu überprüfen, ob ein SteamVR_TrackedObject ist ein Tracker, oder zu finden, welche index der Tracker ist?

+0

Haben Sie darüber nachgedacht 'triggers' mit? – Hristo

+0

@Hristo Können Sie erweitern? Ich bin mir nicht sicher was du meinst? Wenn Sie überprüfen möchten, ob das Objekt eine Auslösetaste hat, würde es nicht funktionieren. Da der Tracker Pins hat (um etwas als Auslöser zu verbinden) und dieselben Protokolle wie der Controller verwendet. –

+0

Omg, es tut mir leid, ich wollte sagen "Tags" – Hristo

Antwort

4

Die einzige Methode zur Herstellung eines SteamVR_TrackedObject Prüfung, die ich noch nicht gefunden haben, ist die ETrackedDevicePoperty.Prop_RenderModelName_String zu überprüfen:

uint index = 0; 
var error = ETrackedPropertyError.TrackedProp_Success; 
for (uint i = 0; i < 16; i++) 
{ 
    var result = new System.Text.StringBuilder((int)64); 
    OpenVR.System.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_RenderModelName_String, result, 64, ref error); 
    if (result.ToString().Contains("tracker")) 
    { 
     index = i; 
     break; 
    } 
} 

Dann können Sie SteamVR_TrackedObject.index auf Index gesetzt:

GetComponent<SteamVR_TrackedObject>().index = (SteamVR_TrackedObject.EIndex)index; 

alle Unterlagen zu finden, Das war bisher ziemlich schwierig, aber hier sind einige Quellen:

Verwandte Themen