Zum Hauptinhalt springen
Version: 2.2.0

Haply::Inverse::Unity::Inverse3

Stellt die Inverse3 Gerätesteuerung dar, die Gerätedaten und Statusaktualisierungen verwaltet. Mehr...

Erbt von Haply.Inverse.Unity.DeviceBehaviour, MonoBehaviour

Öffentliche Veranstaltungen

Name
DeviceDelegateDeviceStateChanged()
Ereignis, das bei jedem haptischen Bild ausgelöst wird.
Action< Inverse3 >OrientationChangedAsync()
Wird immer dann ausgelöst, wenn sich die Körperausrichtung des Inverse3 Gerätes ändert.

Öffentliche Funktionen

Name
delegieren ungültigDeviceDelegate(Inverse3 inverse3)
Stellt eine Methode dar, die das Ereignis Inverse3.DeviceStateChanged eines Inverse3 Gerätes behandelt.
voidRequestPowerSupplyStatus()
Fordert eine Aktualisierung des aktuellen Stromversorgungsstatus(Powered) an und löst nach Abschluss das Ereignis PowerSupplyStatusChanged aus.
voidRequestOrientation()
Fordert eine Aktualisierung der Inverse3Körperausrichtung an und löst nach Abschluss das Ereignis OrientationChangedAsync aus.
voidCursorSetLocalForce(in Vector3 force)
Setzt die auf den Cursor wirkende Kraft in Newton (N) entlang der x-, y- und z-Achse im lokalen Raum des Geräts.
voidCursorSetLocalForce(float x, float y, float z)
voidCursorSetForce(in Vector3 force)
Setzt die Kraft, die auf den Cursor wirkt, in Newton (N) im Weltraum.
voidCursorSetForce(float x, float y, float z)
voidCursorSetLocalPosition(in Vector3 position)
Setzt den Positionssollwert des Cursors in Metern (m) entlang der x-, y- und z-Achse im lokalen Raum des Geräts.
voidCursorSetLocalPosition(float x, float y, float z)
voidCursorSetPosition(in Vector3 position)
Setzt den Positionssollwert des Cursors in Metern (m) im Weltraum.
voidCursorSetPosition(float x, float y, float z)
voidGelenkeSetTorques(Joint3 torques)
Setzt das gewünschte Drehmoment in Newton-Millimeter (Nmm) für jedes Gelenk des Inverse3 Gerätes.
voidJointsSetTorques(Float t0, Float t1, Float t2)
voidJointsSetTorque(Vector3 Winkel)
voidJointsSetTorque(Float x, Float y, Float z)
voidJointsSetAngles(Joint3 angles)
Setzt die gewünschten Gelenkwinkel in Grad (°) für jedes Gelenk des Inverse3 Gerätes.
voidJointsSetAngles(float alpha0, float alpha1, float alpha2)
voidJointsSetAngles(Vector3 angles)
boolLoslassen()
Versucht, die gesamte Kraft- und Positionssteuerung für den Cursor zurückzusetzen.
boolTryResetForce()
Vektor3TransformPoint(Vector3 position)
Transformiert eine Position aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix.
Vektor3TransformVector(Vector3 vector)
Transformiert einen Vektor aus dem lokalen Raum des Geräts oder Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix.
Vektor3InverseTransformPoint(Vector3 position)
Transformiert eine Position vom Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix.
Vektor3InverseTransformVector(Vector3 vector)
Transformiert einen Vektor vom Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix.
override stringToString()
Gibt eine String-Darstellung des Objekts zurück, die eine von Menschen lesbare Beschreibung enthält, die den Namen des Objekts, den Klassentyp, die Geräte-ID und die gewählte Händigkeit umfasst.

Geschützte Funktionen

Name
override voidInvokeReadyEvent()
virtual override voidEinrichtung()
Diese Methode wird automatisch aufgerufen, sobald das _performSetup-Flag gesetzt ist, um Berechnungen zu verarbeiten, die zu umfangreich sind, um bei jedem Frame aufgerufen zu werden. Diese Methode kann überschrieben werden, wobei darauf zu achten ist, dass der Basisaufruf erhalten bleibt. Verwenden Sie SetSetupToPerform, um den Setup-Aufruf auszulösen.
virtual override voidFixedUpdate()

Öffentliche Immobilien

Name
override DeviceTypeGerätetyp
Ruft den Gerätetyp ab, wobei immer DeviceType.Inverse3 für diesen Controller zurückgegeben wird.
override CursorBehaviourCursor
Inverse3BodyKörper
GameObject dreht sich automatisch mit der Inverse3 Körperausrichtung.
Vektor3CursorLocalPosition
Ermittelt die Position des Inverse3 Cursors in Metern (m) im lokalen Raum des Geräts.
Vektor3LocalPosition
Vektor3CursorPosition
Ermittelt die Inverse3 Position des Cursors im Weltraum aus CursorLocalPosition und LocalToWorldMatrix
Vektor3Position
Vektor3CursorLocalVelocity
Ermittelt die Geschwindigkeit des Inverse3 Cursors in Metern pro Sekunde (m/s) im lokalen Raum des Geräts.
Vektor3LokaleGeschwindigkeit
Vektor3CursorGeschwindigkeit
Ermittelt die Inverse3 Geschwindigkeit des Cursors im Weltraum aus CursorLocalVelocity und LocalToWorldMatrix
Vektor3Geschwindigkeit
Fuge3JointsAngles
Ruft die aktuellen Gelenkwinkel des Inverse3 Geräts in Grad.
Fuge3JointsAngularVelocity
Ruft die aktuellen Winkelgeschwindigkeiten der Inverse3 Gelenke des Geräts in Grad pro Sekunde.
HandednessTypeSelectedHandedness
Liest oder setzt den gewünschten Händigkeitstyp des Inverse3 Gerätes.
HandednessTypeHändigkeit
Ruft den Händigkeitstyp des Geräts zur Laufzeit ab.
boolEingeschaltet
Zeigt an, ob das Gerät derzeit eingeschaltet ist.
QuaternionAusrichtung
Ermittelt die aktuelle Ausrichtung des Inverse3 Gerätes auf der Grundlage der zuletzt empfangenen Orientierungsdaten.
SchwimmerArbeitsbereichRadius
Ungefährer Radius des Arbeitsbereichs in Metern (m) im lokalen Raum des Geräts.
SchwimmerWorkspaceScaledRadius
Ungefährer Radius des Arbeitsbereichs im Weltraum.
Vektor3ArbeitsbereichZentrumLinks
Lokale Koordinaten der Arbeitsbereichsmitte für ein Gerät vom Typ HandednessType.Left-handed.
Vektor3ArbeitsbereichCenterRight
Lokale Koordinaten für das Zentrum des Arbeitsbereichs für ein Gerät vom Typ HandednessType.Right (Rechtshänder).
Vektor3WorkspaceCenterLocalPosition
Lokale Position des Arbeitsbereichszentrums in Abhängigkeit vom Handedness-Wert.
Vektor3WorkspaceCenterPosition
Position der Weltmitte des Arbeitsbereichs in Abhängigkeit vom Handedness-Wert.
Vektor3ArbeitsbereichCenter
SteuerungsModusControlMode
Ruft den aktuellen Steuerungsmodus des Geräts ab.
Vektor3ForceOutput
Letzte Kraft, die mit den Methoden CursorSetForce oder CursorSetLocalForce an das Gerät gesendet wurde.
Vektor3PositionOutput
Letzte Position, die mit den Methoden CursorSetPosition oder CursorSetLocalPosition an das Gerät gesendet wurde.
Fuge3JointsTorqueOutput
Letztes Drehmoment, das mit der Methode JointsSetTorque an das Gerät gesendet wurde.
Fuge3JointsAnglesOutput
Letzter Winkel, der von der Methode JointsSetAngles an das Gerät gesendet wurde.
boolSpaceTransformationUpdateEnabled
Liest oder setzt einen Wert, der angibt, ob die Aktualisierung von Raumtransformationsmatrizen aktiviert ist.
Matrix4x4LocalToWorldMatrix
Matrix, die den Geräte- oder Cursorraum in den Weltraum transformiert.
Matrix4x4WorldToLocalMatrix
Matrix, die vom Weltraum in den Geräte- oder Cursorraum zurücktransformiert.

Geschützte Eigenschaften

Name
override BaseCoordinateConverterCoordinateConverter
TransformierenSpaceTransformationReference
Referenztransformation, die für die Einrichtung von LocalToWorldMatrix und WorldToLocalMatrix verwendet wird.

Öffentliche Attribute

Name
UnityEvent< Inverse3 >Bereit
Ereignis, das ausgelöst wird, wenn das Inverse3 Gerät zusammen mit dem Cursor und dem Körper erfolgreich initialisiert wurde und einsatzbereit ist.
UnityEvent< Inverse3, bool >PowerSupplyStatusChanged
Wird ausgelöst, wenn sich der Stromversorgungsstatus des Inverse3 Gerätes.
UnityEvent< Inverse3, ControlMode >ControlModeChanged
Ereignis, das ausgelöst wird, wenn sich der Steuerungsmodus des Geräts ändert.

Zusätzliche vererbte Mitglieder

Öffentliche Ereignisse geerbt von Haply.Inverse.Unity.DeviceBehaviour

Name
Action< DeviceBehaviour, Ret >FehlerEreignis()
VerbindungszustandsdelegierteConnectionStateChanged()
Ereignis, das ausgelöst wird, wenn sich der Verbindungsstatus des Geräts ändert.
Action< DeviceBehaviour, DeviceConnectionState, DeviceConnectionState >ConnectionStateChangedAsync()
Ereignis, das kurz nach der Änderung des Verbindungsstatus des Geräts ausgelöst wird.

Öffentliche Funktionen geerbt von Haply.Inverse.Unity.DeviceBehaviour

Name
delegieren ungültigVerbindungsStateDelegate(DeviceBehaviour device, DeviceConnectionState state, DeviceConnectionState prevState)
Delegat für die Behandlung von Änderungen des Verbindungsstatus des Geräts.
voidSetSetupToPerform()
Zeigt an, dass das Setup im nächsten Frame durchgeführt werden soll.

Geschützte Funktionen geerbt von Haply.Inverse.Unity.DeviceBehaviour

Name
virtuelle LeereErwachen()
voidOnEnable()
voidOnDisable()
voidOnDestroy()

Öffentliche Eigenschaften geerbt von Haply.Inverse.Unity.DeviceBehaviour

Name
intSelectedDeviceId
uintGeräte-ID
Ruft die Geräte-ID ab.
boolIstBereit
Zeigt an, ob das Gerät einsatzbereit ist.
DeviceConnectionStateVerbindungsstatus
Liest oder setzt den aktuellen Verbindungsstatus des Geräts.
boolIsConnected
Ermittelt, ob das Gerät verbunden ist.
boolIsOpened
Ermittelt, ob das Gerät geöffnet ist.

Geschützte Eigenschaften geerbt von Haply.Inverse.Unity.DeviceBehaviour

Name
boolIsCursorSet
Zeigt an, ob der Cursor gesetzt wurde.

Öffentliche Attribute geerbt von Haply.Inverse.Unity.DeviceBehaviour

Name
Konstante intANY_ID
UnityEvent< DeviceBehaviour >DeviceOpened
Ereignis, das ausgelöst wird, wenn der ConnectionState in den Zustand DeviceConnectionState.Opened übergeht.
UnityEvent< DeviceBehaviour >DeviceClosed
Ereignis, das ausgelöst wird, wenn der ConnectionState in den Zustand DeviceConnectionState.Connected übergeht.

Geschützte Attribute geerbt von Haply.Inverse.Unity.DeviceBehaviour

Name
String_Objektname

Detaillierte Beschreibung

class Haply::Inverse::Unity::Inverse3;

Stellt die Inverse3 Gerätesteuerung dar, die Gerätedaten und Statusaktualisierungen verwaltet.

Diese Komponente sollte an ein GameObject angehängt werden, das das physische Inverse3 Gerät in einer Unity-Szene darstellt.

Öffentliche Veranstaltungen Dokumentation

Ereignis DeviceStateChanged

DeviceDelegate DeviceStateChanged()

Ereignis, das bei jedem haptischen Bild ausgelöst wird.

Siehe: ClientConfiguration.HapticPollFrequency

Es bietet Echtzeit-Updates der Position und Geschwindigkeit des Cursors.

Dieses Ereignis ist nützlich für Anwendungen, die eine kontinuierliche Verfolgung des Cursor-Status erfordern, oder für die Anwendung von Steuerbefehlen in Echtzeit. Während dieses Ereignisses können Sie Eigenschaften wie CursorPosition, CursorVelocity, CursorLocalPosition oder CursorLocalVelocity verwenden.

Und Kontrollmethoden wie:

Die Häufigkeit, mit der dieses Ereignis ausgelöst wird, wird durch die Frequenz der haptischen Schleife bestimmt, die über ClientConfiguration.HapticPollFrequency konfiguriert werden kann.

Ereignis OrientationChangedAsync

Action< Inverse3 > OrientationChangedAsync()

Wird immer dann ausgelöst, wenn sich die Körperausrichtung des Inverse3 Gerätes ändert.

Öffentliche Funktionen Dokumentation

Funktion DeviceDelegate

delegate void DeviceDelegate(
Inverse3 inverse3
)

Stellt eine Methode dar, die das Ereignis Inverse3.DeviceStateChanged eines Inverse3 Gerätes behandelt.

Parameter:

  • inverse3 Die Inverse3 Geräteinstanz, die das Ereignis auslöst.

Funktion RequestPowerSupplyStatus

void RequestPowerSupplyStatus()

Fordert eine Aktualisierung des aktuellen Stromversorgungsstatus(Powered) an und löst nach Abschluss das Ereignis PowerSupplyStatusChanged aus.

Hinweis: Häufige Aufrufe dieser Methode (z. B. innerhalb einer Update-Schleife) können zu Leistungseinbußen und haptischen Rucklern führen. Es wird empfohlen, diese Methode mit Bedacht einzusetzen, basierend auf bestimmten Benutzeraktionen oder Ereignissen, oder den Modus DeviceMapperDeviceMapper.DeviceInfoPollingMode.Continuous zu verwenden.

Funktion RequestOrientation

void RequestOrientation()

Fordert eine Aktualisierung der Inverse3 Body Orientation und löst nach Abschluss das Ereignis OrientationChangedAsync aus.

Verwenden Sie diese Methode, um die Orientierungsdaten des Geräts manuell zu aktualisieren. Wenn ein Körper festgelegt ist, wird seine Transformation automatisch mit der neuen Ausrichtung aktualisiert. Hinweis: Häufige Aufrufe dieser Methode (z. B. innerhalb einer Aktualisierungsschleife) können zu Leistungseinbußen und haptischen Rucklern führen. Es wird empfohlen, diese Methode mit Bedacht einzusetzen, basierend auf bestimmten Benutzeraktionen oder Ereignissen, oder den Modus DeviceMapperDeviceMapper.DeviceInfoPollingMode.Continuous zu verwenden.

Funktion CursorSetLocalForce

void CursorSetLocalForce(
in Vector3 force
)

Legt die auf den Cursor wirkende Kraft in Newton (N) entlang der x-, y- und z-Achse im lokalen Raum des Geräts fest.

Parameter:

  • force Der gewünschte Kraftvektor in Newton (N) im lokalen Raum des Geräts.

Ausnahmen:

  • InvalidOperationException Wird ausgelöst, wenn die Client-Verbindung nicht hergestellt werden kann.
  • Exception Wird ausgelöst, wenn ein unerwarteter Fehler vom Dienst empfangen wird.

Diese Methode sendet einen nicht verarbeiteten Kraftvektor direkt an das Gerät in seinem lokalen Raum und sollte nur in Verbindung mit CursorLocalPosition und CursorLocalVelocity verwendet werden. Wenn die Kraftberechnung auf Weltraumkoordinaten(CursorPosition und CursorVelocity) basiert und/oder einen transformierten (Position, Rotation oder Skalierung) Controller beinhaltet, sollte stattdessen CursorSetForce verwendet werden.

Wenn Kräfte erzeugt werden, leuchtet die LED des Geräts grün. Das Inverse3 Gerät kann insgesamt bis zu 10 N erzeugen, wobei die maximal erreichbare Kraft über den Arbeitsbereich variiert. Wenn die angeforderte Kraft die Fähigkeit des Geräts übersteigt, erzeugt es entweder die maximal mögliche Kraft in der gleichen Richtung oder, wenn die Kraftskalierung aktiviert ist, passt es sich an, um die höchste erreichbare Kraft zu erzeugen, während eine ähnliche Richtung beibehalten wird. Wenn Sie die Kraft entlang aller Achsen auf Null setzen, wird keine Nettokraft auf den Cursor ausgeübt, aber der Cursor bleibt schwerkraftkompensiert, falls dies aktiviert ist.

Funktion CursorSetLocalForce

void CursorSetLocalForce(
float x,
float y,
float z
)

Funktion CursorSetForce

void CursorSetForce(
in Vector3 force
)

Legt die auf den Cursor wirkende Kraft in Newton (N) im Weltraum fest.

Parameter:

  • force Der gewünschte Kraftvektor in Newton (N) im Weltraum.

Siehe: CursorSetLocalForce, InverseTransformVector

Diese Methode wandelt den bereitgestellten Kraftvektor vom Weltraum in den lokalen Raum des Geräts um, bevor er an das Gerät gesendet wird. Sie sollte verwendet werden, wenn die Kraftberechnung auf Weltraumkoordinaten basiert. Für die direkte Steuerung im lokalen Raum verwenden Sie stattdessen CursorSetLocalForce.

Funktion CursorSetForce

void CursorSetForce(
float x,
float y,
float z
)

Funktion CursorSetLocalPosition

void CursorSetLocalPosition(
in Vector3 position
)

Setzt den Positionssollwert des Cursors in Metern (m) entlang der x-, y- und z-Achse im lokalen Raum des Geräts.

Parameter:

  • position Der gewünschte Positionsvektor in Metern (m) im lokalen Raum des Geräts.

Ausnahmen:

  • InvalidOperationException Wird ausgelöst, wenn die Client-Verbindung nicht hergestellt werden kann.
  • Exception Wird ausgelöst, wenn ein unerwarteter Fehler vom Dienst empfangen wird.

Diese Methode setzt einen Positionssollwert, der den Cursor an die angegebene Position bewegt. Sie sendet eine nicht verarbeitete Position direkt an das Gerät in seinem lokalen Raum. Wenn die Positionsberechnung auf Weltraumkoordinaten(CursorPosition, CursorVelocity) basiert und/oder eine transformierte (Position, Rotation oder Skalierung) Steuerung beinhaltet, sollte CursorSetPosition in Betracht gezogen werden.

Die LED des Geräts leuchtet blau, wenn es sich im Lageregelungsmodus befindet. Die Einstellung einer nicht erreichbaren Position bewirkt, dass die Inverse3 Arme des Geräts langsam nach unten fallen oder in ihrer aktuellen Position verbleiben. Um den Positionskontrollmodus zu beenden, wenden Sie eine Kraft an (die Null sein kann), verwenden Sie TryResetForce oder trennen Sie die Verbindung zum Gerät.

Funktion CursorSetLocalPosition

void CursorSetLocalPosition(
float x,
float y,
float z
)

Funktion CursorSetPosition

void CursorSetPosition(
in Vector3 position
)

Setzt den Positionssollwert des Cursors in Metern (m) im Weltraum.

Parameter:

  • position Der gewünschte Positionsvektor in Metern (m) im Weltraum.

Siehe: CursorSetLocalPosition, InverseTransformPoint

Diese Methode wandelt die angegebene Position vom Weltraum in den lokalen Raum des Geräts um, bevor der Positionssollwert festgelegt wird. Sie sollte verwendet werden, wenn die Positionsberechnung auf Weltraumkoordinaten basiert. Für die direkte Steuerung im lokalen Raum ist stattdessen CursorSetLocalPosition zu verwenden.

Funktion CursorSetPosition

void CursorSetPosition(
float x,
float y,
float z
)

Funktion JointsSetTorques

void JointsSetTorques(
Joint3 torques
)

Stellt das gewünschte Drehmoment in Newton-Millimeter (Nmm) für jedes Gelenk des Inverse3 Gerätes ein.

Parameter:

  • Drehmomente Gewünschte Drehmomente an den einzelnen Geräteverbindungen.

Ausnahmen:

  • InvalidOperationException Wird ausgelöst, wenn throwException wahr ist und die Client-Verbindung nicht hergestellt werden kann.
  • Exception Wird ausgelöst, wenn ein unerwarteter Fehler vom Dienst empfangen wird.

Wenn ein Drehmoment erzeugt wird, leuchtet die LED des Geräts grün.

Die Inverse3 Das Gerät kann an jedem Gelenk ein Drehmoment von bis zu 1000 Nmm erzeugen. Wenn das gewünschte Drehmoment diese Grenze überschreitet, erzeugt das Gerät stattdessen das maximale Drehmoment.

Funktion JointsSetTorques

void JointsSetTorques(
float t0,
float t1,
float t2
)

Funktion JointsSetTorque

void JointsSetTorque(
Vector3 angles
)

Funktion JointsSetTorque

void JointsSetTorque(
float x,
float y,
float z
)

Funktion JointsSetAngles

void JointsSetAngles(
Joint3 angles
)

Stellt die gewünschten Gelenkwinkel in Grad (°) für jedes Gelenk des Inverse3 Gerätes ein.

Parameter:

  • Winkel Gewünschte Winkel an jeder Geräteverbindung.

Ausnahmen:

  • InvalidOperationException Wird ausgelöst, wenn throwException wahr ist und die Client-Verbindung nicht hergestellt werden kann.
  • Exception Wird ausgelöst, wenn ein unerwarteter Fehler vom Dienst empfangen wird.

Legt einen gewünschten Gelenkwinkel für das Gerät fest. Wenn Sie einen nicht erreichbaren Winkel einstellen, wird das Gerät in die nächstmögliche physikalisch erreichbare Konfiguration gebracht. Zum Beispiel, die Einstellung (-90, 180, 0) bringt das Gerät in eine Position, in der der Kopf parallel und die Arme rechtwinklig zum Körper sind.

Funktion JointsSetAngles

void JointsSetAngles(
float alpha0,
float alpha1,
float alpha2
)

Funktion JointsSetAngles

void JointsSetAngles(
Vector3 angles
)

Funktion Freigabe

bool Release()

Versucht, die gesamte Kraft- und Positionssteuerung für den Cursor zurückzusetzen.

Rückgabe: True, wenn der Force-Reset erfolgreich war; false, wenn die Client-Verbindung nicht hergestellt werden konnte oder ein unerwarteter Fehler aufgetreten ist.

Diese Methode löst keine Ausnahme aus, wenn die ClientConnection bereits geschlossen ist, so dass sie sich für die Verwendung während der Programmbeendigung oder in OnDisable-Ereignissen eignet. Sie gibt false zurück, wenn die Client-Verbindung nicht hergestellt wurde oder wenn beim Zurücksetzen der Kraft- und Positionskontrolle ein unerwarteter Fehler vom Dienst empfangen wurde.

Funktion TryResetForce

bool TryResetForce()

Funktion TransformPoint

Vector3 TransformPoint(
Vector3 position
)

Transformiert eine Position aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix.

Parameter:

  • Position Lokale Position.

Siehe: LocalToWorldMatrix

Rückkehr: Weltweite Position.

Sie können die umgekehrte Konvertierung von der Welt in den lokalen Raum mit InverseTransformPoint durchführen.

Funktion TransformVektor

Vector3 TransformVector(
Vector3 vector
)

Transformiert einen Vektor aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix.

Parameter:

  • vector Lokaler Vektor.

Siehe: LocalToWorldMatrix

Rückkehr: Weltvektor.

Sie können die umgekehrte Konvertierung von der Welt in den lokalen Raum mit InverseTransformVector durchführen.

Funktion InverseTransformPoint

Vector3 InverseTransformPoint(
Vector3 position
)

Transformiert eine Position aus dem Weltraum zurück in den lokalen Raum des Geräts oder des Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix.

Parameter:

  • Position Weltposition.

Siehe: WorldToLocalMatrix

Rückkehr: Lokale Position.

Das Gegenteil von TransformPoint.

Funktion InverseTransformationVektor

Vector3 InverseTransformVector(
Vector3 vector
)

Transformiert einen Vektor aus dem Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix.

Parameter:

  • Vektor Welt Vektor.

Siehe: WorldToLocalMatrix

Rückgabe: Lokaler Vektor.

Das Gegenteil von TransformVector.

Funktion ToString

override string ToString()

Gibt eine String-Darstellung des Objekts zurück, die eine von Menschen lesbare Beschreibung enthält, die den Namen des Objekts, den Klassentyp, die Geräte-ID und die ausgewählte Händigkeit umfasst.

Rückgabe: Eine Zeichenkette, die das aktuelle Objekt darstellt, einschließlich seines Namens, Klassentyps, Geräte-ID und der ausgewählten Händigkeit.

The returned string follows the format: "name <Class>(#id.handedness)", where:

  • "name" ist der Wert des Objekts _objectName Feld.
  • "Klasse" ist der Name der Klassenart des Objekts.
  • "id" ist die Geräte-ID, formatiert als 4-stellige hexadezimale Zeichenfolge, oder "*", wenn die Geräte-ID ANY_ID. Wenn DeviceId ist ANY_IDder Wert von SelectedDeviceId verwendet wird.
  • "handedness" ist die ausgewählte Händigkeit, dargestellt als ".left", ".right" oder weggelassen, wenn SelectedHandedness ist Nil.

Diese Methode hilft bei der Fehlersuche und Protokollierung, indem sie eine präzise und informative Beschreibung des Objekts liefert.

Geschützte Funktionen Dokumentation

Funktion InvokeReadyEvent

override void InvokeReadyEvent()

Funktion Einrichten

virtual override void Setup()

Diese Methode wird automatisch aufgerufen, sobald das _performSetup-Flag gesetzt ist, um Berechnungen zu verarbeiten, die zu umfangreich sind, um bei jedem Frame aufgerufen zu werden. Diese Methode kann überschrieben werden, wobei darauf zu achten ist, dass der Basisaufruf erhalten bleibt. Verwenden Sie SetSetupToPerform, um den Setup-Aufruf auszulösen.

Neuimplementierungen: Haply: :Inverse::Unity::DeviceBehaviour::Setup

Funktion FixedUpdate

virtual override void FixedUpdate()

Reimplements: Haply: :Inverse::Unity::DeviceBehaviour::FixedUpdate

Dokumentation über öffentliches Eigentum

Eigenschaft DeviceType

override DeviceType DeviceType;

Ruft den Gerätetyp ab, wobei immer DeviceType.Inverse3 für dieses Steuergerät zurückgegeben wird.

Eigenschaft Cursor

override CursorBehaviour Cursor;

Diese Eigenschaft hat Vorrang vor der Basiseigenschaft DeviceBehaviour.Cursor und kann sicher auf Inverse3Cursor übertragen werden. Das Setzen dieser Eigenschaft aktualisiert auch das Flag DeviceBehaviour._performSetup.

Eigenschaft Körper

Inverse3Body Body;

GameObject dreht sich automatisch mit der Inverse3 Körperausrichtung.

Eigenschaft CursorLocalPosition

Vector3 CursorLocalPosition;

Ermittelt die Position des Inverse3 Cursors in Metern (m) im lokalen Raum des Geräts.

Das Gerät DeviceBehaviour.ConnectionState muss zuerst DeviceConnectionState.Opened sein, um einen einheitlichen Wert zu erhalten.

Eigenschaft LocalPosition

Vector3 LocalPosition;

Eigenschaft CursorPosition

Vector3 CursorPosition;

Ermittelt die Inverse3 Position des Cursors im Weltraum aus CursorLocalPosition und LocalToWorldMatrix

Siehe: Transform.position, TransformPoint

Eigenschaft Position

Vector3 Position;

Eigenschaft CursorLocalVelocity

Vector3 CursorLocalVelocity;

Ermittelt die Geschwindigkeit des Inverse3 Cursors in Metern pro Sekunde (m/s) im lokalen Raum des Geräts.

Die bereitgestellte Geschwindigkeit wird mithilfe von Algorithmen zur Geschwindigkeitsschätzung berechnet und erfordert keine weitere Filterung oder Verarbeitung.

Das Gerät DeviceBehaviour.ConnectionState muss zuerst DeviceConnectionState.Opened sein, um einen einheitlichen Wert zu erhalten.

Eigenschaft LocalVelocity

Vector3 LocalVelocity;

Eigenschaft CursorVelocity

Vector3 CursorVelocity;

Ermittelt die Inverse3 Geschwindigkeit des Cursors im Weltraum aus CursorLocalVelocity und LocalToWorldMatrix

TransformVektor

Eigenschaft Velocity

Vector3 Velocity;

Eigenschaft JointsAngles

Joint3 JointsAngles;

Ermittelt die aktuellen Gelenkwinkel des Inverse3 Gerätes in Grad.

Jede Komponente des Vector3 stellt den Winkel eines der Gelenke des Geräts dar:

  • x: Winkel des Gelenks 1, das den Kopf des Geräts steuert.
  • y: Winkel von Gelenk 2, das das innere Gelenk der Arme steuert.
  • z: Winkel von Gelenk 3, das das äußere Gelenk der Arme steuert.

Diese Winkel sind entscheidend für das Verständnis und die Kontrolle der räumlichen Ausrichtung der beweglichen Teile des Geräts.

Eigenschaft JointsAngularVelocity

Joint3 JointsAngularVelocity;

Ruft die aktuellen Winkelgeschwindigkeiten der Inverse3 Gelenke des Geräts in Grad pro Sekunde.

Jede Komponente des Vector3 stellt die Winkelgeschwindigkeit eines der Gelenke des Geräts dar:

  • x: Winkelgeschwindigkeit von Gelenk 1, das den Kopf des Geräts steuert.
  • y: Winkelgeschwindigkeit von Gelenk 2, das das innere Gelenk der Arme steuert.
  • z: Winkelgeschwindigkeit von Gelenk 3, das das äußere Gelenk der Arme steuert.

Die Winkelgeschwindigkeiten helfen bei der Überwachung der Geschwindigkeit, mit der sich die Gelenke bewegen, was für dynamische Steuerungs- und Rückkopplungsanwendungen entscheidend ist.

Eigenschaft SelectedHandedness

HandednessType SelectedHandedness;

Liest oder setzt den gewünschten Händigkeitstyp des Inverse3 Gerätes.

Ist dieser Wert auf HandednessType.Nil gesetzt, wird das erste gefundene Gerät zur Laufzeit vom DeviceMapper ausgewählt.

Verwenden Sie Handedness, um die tatsächliche Händigkeit des Geräts zur Laufzeit zu erfahren.

Eigenschaft Händigkeit

HandednessType Handedness;

Ruft den Händigkeitstyp des Geräts zur Laufzeit ab.

Eigenschaft Powered

bool Powered;

Zeigt an, ob das Gerät derzeit mit Strom versorgt wird.

Siehe: DeviceMapper.devicesInfoPollingMode

Diese Eigenschaft wird nicht in Echtzeit aufgefrischt. Sie kann manuell mit RequestPowerSupplyStatus oder automatisch mit dem DeviceMapper aktualisiert werden.

Eigenschaft Orientierung

Quaternion Orientation;

Ermittelt die aktuelle Ausrichtung des Inverse3 Geräts auf der Grundlage der zuletzt empfangenen Orientierungsdaten.

Siehe: DeviceMapper.devicesInfoPollingMode

Diese Eigenschaft wird nicht in Echtzeit aufgefrischt. Sie kann manuell mit RequestOrientation oder automatisch durch den DeviceMapper aktualisiert werden.

Eigenschaft WorkspaceRadius

float WorkspaceRadius;

Ungefährer Radius des Arbeitsbereichs in Metern (m) im lokalen Raum des Geräts.

Eigenschaft WorkspaceScaledRadius

float WorkspaceScaledRadius;

Ungefährer Radius des Arbeitsbereichs im Weltraum.

Eigenschaft WorkspaceCenterLeft

static Vector3 WorkspaceCenterLeft = new(-0.05f, 0.15f, -0.12f);

Lokale Koordinaten der Arbeitsbereichsmitte für ein Gerät vom Typ HandednessType.Left-handed.

Siehe: CursorSetLocalPosition, SelectedHandedness

Wenn Sie den Cursor auf diese lokale Position setzen, wird das Gerät so bewegt, dass der Kopf parallel und die Arme senkrecht zum Körper stehen.

Eigenschaft WorkspaceCenterRight

static Vector3 WorkspaceCenterRight = new(0.05f, 0.15f, -0.12f);

Lokale Koordinaten des Arbeitsbereichszentrums für ein Gerät vom Typ HandednessType.Right-handed.

Siehe: CursorSetLocalPosition, SelectedHandedness

Wenn Sie den Cursor auf diese lokale Position setzen, wird das Gerät so bewegt, dass der Kopf parallel und die Arme senkrecht zum Körper stehen.

Eigenschaft WorkspaceCenterLocalPosition

Vector3 WorkspaceCenterLocalPosition;

Lokale Position der Arbeitsflächenmitte in Abhängigkeit vom Wert der Handlichkeit.

Siehe: CursorSetLocalPosition, SelectedHandedness

Gibt WorkspaceCenterRight zurück, wenn Handedness gleich HandednessType.Nil ist.

Wenn Sie den Cursor auf diese lokale Position setzen, wird das Gerät so bewegt, dass der Kopf parallel und die Arme senkrecht zum Körper stehen.

Eigenschaft WorkspaceCenterPosition

Vector3 WorkspaceCenterPosition;

Die Position der Arbeitsfläche in der Mitte der Welt hängt vom Wert der Handlichkeit ab.

Siehe: CursorSetPosition, SelectedHandedness

Gibt WorkspaceCenterRight zurück, wenn Handedness gleich HandednessType.Nil ist.

Wenn Sie den Cursor auf diese Position setzen, wird das Gerät so bewegt, dass der Kopf parallel und die Arme senkrecht zum Körper stehen.

Eigenschaft WorkspaceCenter

Vector3 WorkspaceCenter;

Eigenschaft ControlMode

ControlMode ControlMode;

Ruft den aktuellen Steuerungsmodus des Geräts ab.

Die Steuermodi legen fest, wie das Gerät auf Eingabebefehle reagiert und seine Ausgaben verwaltet, z. B. Cursorposition oder Gelenkmomente.

Eigenschaft ForceOutput

Vector3 ForceOutput;

Letzte Kraft, die mit den Methoden CursorSetForce oder CursorSetLocalForce an das Gerät gesendet wurde.

Eigenschaft PositionOutput

Vector3 PositionOutput;

Letzte Position, die mit den Methoden CursorSetPosition oder CursorSetLocalPosition an das Gerät gesendet wurde.

Eigenschaft JointsTorqueOutput

Joint3 JointsTorqueOutput;

Letztes Drehmoment, das mit der Methode JointsSetTorque an das Gerät gesendet wurde.

Eigenschaft JointsAnglesOutput

Joint3 JointsAnglesOutput;

Letzter Winkel, der mit der Methode JointsSetAngles an das Gerät gesendet wurde.

Eigenschaft SpaceTransformationUpdateEnabled

bool SpaceTransformationUpdateEnabled = true;

Liest oder setzt einen Wert, der angibt, ob die Aktualisierung von Raumtransformationsmatrizen aktiviert ist.

Bei der Einstellung true wird die Methode UpdateSpaceTransformationCache aufgerufen, um die LocalToWorldMatrix und die WorldToLocalMatrix auf der Grundlage der aktuellen SpaceTransformationReference zu aktualisieren. Dies wird in der Regel verwendet, um sicherzustellen, dass die räumlichen Berechnungen in Bezug auf die Position und die Ausrichtung des Geräts in der Welt genau und auf dem neuesten Stand sind.

Eigenschaft LocalToWorldMatrix

Matrix4x4 LocalToWorldMatrix;

Matrix, die den Geräte- oder Cursorraum in den Weltraum transformiert.

Siehe: SpaceTransformationReference, TransformPoint, TransformVector

Die Matrix hängt von der SpaceTransformationReference ab.

Diese Matrix kann für die Konvertierung von Positionen und Geschwindigkeiten aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum verwendet werden. Damit können haptikbezogene Berechnungen in Umgebungen, in denen die Daten der Transform-Komponente nicht direkt zugänglich sind, genau durchgeführt werden.

Eigenschaft WorldToLocalMatrix

Matrix4x4 WorldToLocalMatrix;

Matrix, die vom Weltraum in den Geräte- oder Cursorraum zurücktransformiert.

Siehe: SpaceTransformationReference, InverseTransformPoint, InverseTransformVector

Die Matrix hängt von der SpaceTransformationReference ab.

Diese Matrix kann verwendet werden, um berechnete Kräfte aus dem Weltraum in den lokalen Raum des Geräts oder des Cursors zu konvertieren. Damit können haptikbezogene Berechnungen in Umgebungen, in denen die Daten der Transform-Komponente nicht direkt zugänglich sind, genau durchgeführt werden.

Geschütztes Eigentum Dokumentation

Eigenschaft CoordinateConverter

override BaseCoordinateConverter CoordinateConverter;

Eigenschaft SpaceTransformationReference

Transform SpaceTransformationReference;

Referenztransformation für die Einrichtung von LocalToWorldMatrix und WorldToLocalMatrix.

Wenn Cursor gesetzt ist, wird sein Elternteil verwendet. Andernfalls wird das aktuelle Gerät transformiert.

Öffentliche Attribute Dokumentation

Variable Bereitschaft

UnityEvent< Inverse3 > Ready;

Ereignis, das ausgelöst wird, wenn das Inverse3 das Gerät zusammen mit dem Cursor und dem Körper erfolgreich initialisiert wurde und einsatzbereit ist.

Wenn SpaceTransformationUpdateEnabled aktiviert ist, wird dieses Ereignis nach der ersten Aktualisierung ausgelöst.

Variable PowerSupplyStatusChanged

UnityEvent< Inverse3, bool > PowerSupplyStatusChanged;

Wird immer dann ausgelöst, wenn sich der Zustand der Stromversorgung des Inverse3 Gerätes.

Siehe: Powered

Variable ControlModeChanged

UnityEvent< Inverse3, ControlMode > ControlModeChanged;

Ereignis, das ausgelöst wird, wenn sich der Steuermodus des Geräts ändert.

Dies ermöglicht reaktive Programmiermuster, bei denen Änderungen im Steuerungsmodus bestimmte Verhaltensweisen oder Konfigurationen auslösen können.