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 | |
---|---|
DeviceDelegate | DeviceStateChanged() 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ültig | DeviceDelegate(Inverse3 inverse3) Stellt eine Methode dar, die das Ereignis Inverse3.DeviceStateChanged eines Inverse3 Gerätes behandelt. |
void | RequestPowerSupplyStatus() Fordert eine Aktualisierung des aktuellen Stromversorgungsstatus(Powered) an und löst nach Abschluss das Ereignis PowerSupplyStatusChanged aus. |
void | RequestOrientation() Fordert eine Aktualisierung der Inverse3Körperausrichtung an und löst nach Abschluss das Ereignis OrientationChangedAsync aus. |
void | CursorSetLocalForce(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. |
void | CursorSetLocalForce(float x, float y, float z) |
void | CursorSetForce(in Vector3 force) Setzt die Kraft, die auf den Cursor wirkt, in Newton (N) im Weltraum. |
void | CursorSetForce(float x, float y, float z) |
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. |
void | CursorSetLocalPosition(float x, float y, float z) |
void | CursorSetPosition(in Vector3 position) Setzt den Positionssollwert des Cursors in Metern (m) im Weltraum. |
void | CursorSetPosition(float x, float y, float z) |
void | GelenkeSetTorques(Joint3 torques) Setzt das gewünschte Drehmoment in Newton-Millimeter (Nmm) für jedes Gelenk des Inverse3 Gerätes. |
void | JointsSetTorques(Float t0, Float t1, Float t2) |
void | JointsSetTorque(Vector3 Winkel) |
void | JointsSetTorque(Float x, Float y, Float z) |
void | JointsSetAngles(Joint3 angles) Setzt die gewünschten Gelenkwinkel in Grad (°) für jedes Gelenk des Inverse3 Gerätes. |
void | JointsSetAngles(float alpha0, float alpha1, float alpha2) |
void | JointsSetAngles(Vector3 angles) |
bool | Loslassen() Versucht, die gesamte Kraft- und Positionssteuerung für den Cursor zurückzusetzen. |
bool | TryResetForce() |
Vektor3 | TransformPoint(Vector3 position) Transformiert eine Position aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix. |
Vektor3 | TransformVector(Vector3 vector) Transformiert einen Vektor aus dem lokalen Raum des Geräts oder Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix. |
Vektor3 | InverseTransformPoint(Vector3 position) Transformiert eine Position vom Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix. |
Vektor3 | InverseTransformVector(Vector3 vector) Transformiert einen Vektor vom Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix. |
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 gewählte Händigkeit umfasst. |
Geschützte Funktionen
Name | |
---|---|
override void | InvokeReadyEvent() |
virtual override void | Einrichtung() 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 void | FixedUpdate() |
Öffentliche Immobilien
Name | |
---|---|
override DeviceType | Gerätetyp Ruft den Gerätetyp ab, wobei immer DeviceType.Inverse3 für diesen Controller zurückgegeben wird. |
override CursorBehaviour | Cursor |
Inverse3Body | Körper GameObject dreht sich automatisch mit der Inverse3 Körperausrichtung. |
Vektor3 | CursorLocalPosition Ermittelt die Position des Inverse3 Cursors in Metern (m) im lokalen Raum des Geräts. |
Vektor3 | LocalPosition |
Vektor3 | CursorPosition Ermittelt die Inverse3 Position des Cursors im Weltraum aus CursorLocalPosition und LocalToWorldMatrix |
Vektor3 | Position |
Vektor3 | CursorLocalVelocity Ermittelt die Geschwindigkeit des Inverse3 Cursors in Metern pro Sekunde (m/s) im lokalen Raum des Geräts. |
Vektor3 | LokaleGeschwindigkeit |
Vektor3 | CursorGeschwindigkeit Ermittelt die Inverse3 Geschwindigkeit des Cursors im Weltraum aus CursorLocalVelocity und LocalToWorldMatrix |
Vektor3 | Geschwindigkeit |
Fuge3 | JointsAngles Ruft die aktuellen Gelenkwinkel des Inverse3 Geräts in Grad. |
Fuge3 | JointsAngularVelocity Ruft die aktuellen Winkelgeschwindigkeiten der Inverse3 Gelenke des Geräts in Grad pro Sekunde. |
HandednessType | SelectedHandedness Liest oder setzt den gewünschten Händigkeitstyp des Inverse3 Gerätes. |
HandednessType | Händigkeit Ruft den Händigkeitstyp des Geräts zur Laufzeit ab. |
bool | Eingeschaltet Zeigt an, ob das Gerät derzeit eingeschaltet ist. |
Quaternion | Ausrichtung Ermittelt die aktuelle Ausrichtung des Inverse3 Gerätes auf der Grundlage der zuletzt empfangenen Orientierungsdaten. |
Schwimmer | ArbeitsbereichRadius Ungefährer Radius des Arbeitsbereichs in Metern (m) im lokalen Raum des Geräts. |
Schwimmer | WorkspaceScaledRadius Ungefährer Radius des Arbeitsbereichs im Weltraum. |
Vektor3 | ArbeitsbereichZentrumLinks Lokale Koordinaten der Arbeitsbereichsmitte für ein Gerät vom Typ HandednessType.Left-handed. |
Vektor3 | ArbeitsbereichCenterRight Lokale Koordinaten für das Zentrum des Arbeitsbereichs für ein Gerät vom Typ HandednessType.Right (Rechtshänder). |
Vektor3 | WorkspaceCenterLocalPosition Lokale Position des Arbeitsbereichszentrums in Abhängigkeit vom Handedness-Wert. |
Vektor3 | WorkspaceCenterPosition Position der Weltmitte des Arbeitsbereichs in Abhängigkeit vom Handedness-Wert. |
Vektor3 | ArbeitsbereichCenter |
SteuerungsModus | ControlMode Ruft den aktuellen Steuerungsmodus des Geräts ab. |
Vektor3 | ForceOutput Letzte Kraft, die mit den Methoden CursorSetForce oder CursorSetLocalForce an das Gerät gesendet wurde. |
Vektor3 | PositionOutput Letzte Position, die mit den Methoden CursorSetPosition oder CursorSetLocalPosition an das Gerät gesendet wurde. |
Fuge3 | JointsTorqueOutput Letztes Drehmoment, das mit der Methode JointsSetTorque an das Gerät gesendet wurde. |
Fuge3 | JointsAnglesOutput Letzter Winkel, der von der Methode JointsSetAngles an das Gerät gesendet wurde. |
bool | SpaceTransformationUpdateEnabled Liest oder setzt einen Wert, der angibt, ob die Aktualisierung von Raumtransformationsmatrizen aktiviert ist. |
Matrix4x4 | LocalToWorldMatrix Matrix, die den Geräte- oder Cursorraum in den Weltraum transformiert. |
Matrix4x4 | WorldToLocalMatrix Matrix, die vom Weltraum in den Geräte- oder Cursorraum zurücktransformiert. |
Geschützte Eigenschaften
Name | |
---|---|
override BaseCoordinateConverter | CoordinateConverter |
Transformieren | SpaceTransformationReference 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() |
Verbindungszustandsdelegierte | ConnectionStateChanged() 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ültig | VerbindungsStateDelegate(DeviceBehaviour device, DeviceConnectionState state, DeviceConnectionState prevState) Delegat für die Behandlung von Änderungen des Verbindungsstatus des Geräts. |
void | SetSetupToPerform() Zeigt an, dass das Setup im nächsten Frame durchgeführt werden soll. |
Geschützte Funktionen geerbt von Haply.Inverse.Unity.DeviceBehaviour
Name | |
---|---|
virtuelle Leere | Erwachen() |
void | OnEnable() |
void | OnDisable() |
void | OnDestroy() |
Öffentliche Eigenschaften geerbt von Haply.Inverse.Unity.DeviceBehaviour
Name | |
---|---|
int | SelectedDeviceId |
uint | Geräte-ID Ruft die Geräte-ID ab. |
bool | IstBereit Zeigt an, ob das Gerät einsatzbereit ist. |
DeviceConnectionState | Verbindungsstatus Liest oder setzt den aktuellen Verbindungsstatus des Geräts. |
bool | IsConnected Ermittelt, ob das Gerät verbunden ist. |
bool | IsOpened Ermittelt, ob das Gerät geöffnet ist. |
Geschützte Eigenschaften geerbt von Haply.Inverse.Unity.DeviceBehaviour
Name | |
---|---|
bool | IsCursorSet Zeigt an, ob der Cursor gesetzt wurde. |
Öffentliche Attribute geerbt von Haply.Inverse.Unity.DeviceBehaviour
Name | |
---|---|
Konstante int | ANY_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:
- CursorSetForce, um eine Kraft auf den Cursor anzuwenden,
- CursorSetPosition, um die Position des Cursors festzulegen,
- JointsSetTorque, um ein Drehmoment auf die Gelenke des Geräts anzuwenden, oder
- JointsSetAngles, um die Winkel der Gelenke des Geräts einzustellen.
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
. WennDeviceId
istANY_ID
der Wert vonSelectedDeviceId
verwendet wird. - "handedness" ist die ausgewählte Händigkeit, dargestellt als ".left", ".right" oder weggelassen, wenn
SelectedHandedness
istNil
.
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
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.