Zum Hauptinhalt springen

← Zurück zur Startseite

Änderungsprotokoll 2.1.1

Abhängigkeiten​

  • Aktualisiert: haply-inverse-c.dll Version 2.1.1 (erfordert Inverse SDK >= 2.1)
  • Aktualisiert: Haply.Inverse.dll Version 2.1.1
  • Hinzugefügt: com.unity.xr.core-utils Version 2.3.0
Warnung

Die Kompatibilität mit Unity-Versionen vor 2022.1.0f1 wurde eingestellt. Bitte aktualisieren Sie auf eine neuere Version, falls Kompatibilitätsprobleme auftreten sollten.

Inkompatible Änderungen​

  • Inverse3 und VerseGrip übergeben device als erstes Argument des Ereignisses ConnectionStateChanged
    • ConnectionStateChanged(state, prevState) > ConnectionStateChanged(device, state, prevState)
    • ConnectionStateChangedAsync(state, prevState) > ConnectionStateChangedAsync(device, state, prevState)
  • Die Eigenschaft State „von DeviceMapper“ ist nun schreibgeschützt.

Neue Funktionen​

  • Die Inverse3Body-Komponente wendet die Körperausrichtung eines „ Inverse3 “-Geräts auf ein angegebenes GameObject an.
  • Inverse3:
    • Die Gerätedaten (Inspector) anzeigen ControlMode sowie den zuletzt an das Gerät gesendeten Wert Force, Position oder Angles an.
    • JointsAngles und JointsAngularVelocity.
    • Powered Zeigt an, ob das Gerät derzeit mit Strom versorgt wird.
    • Das Unity-Ereignis PowerSupplyStatusChanged wird ausgelöst, sobald sich der Status der Stromversorgung ändert.
    • Orientation liefert die aktuelle Ausrichtung des „ Inverse3 “-Geräts.
    • Das Ereignis OrientationChangedAsync wird ausgelöst, sobald sich die Körperhaltung ändert.
    • RequestOrientation() fordert die manuelle Körperausrichtung an.
    • ControlMode liefert den aktuellen Steuerungsmodus (CursorForce, CursorPosition, JointsTorques, JointsAngles).
    • Das Unity-Ereignis ControlModeChanged wird ausgelöst, sobald sich der Steuermodus ändert.
    • ForceOutput, PositionOutput, JointsTorqueOutput und JointsAnglesOutput liefern die aktuellen Ausgaben.
    • Release() setzt die Gerätesteuerung zurück, indem eine Kraft von Null gesendet wird (ersetzt TryResetForce()).
    • CoordinateConverter dient zur Definition der Koordinatenumrechnung über eine Voreinstellungsdatei oder einen direkten Wert.
    • ErrorEvent wird im Hauptthread ausgelöst, wenn ein Fehlerereignis von ClientConnection für ein zugeordnetes Gerät auftritt.
  • VerseGrip:
    • CoordinateConverter dient zur Definition der Koordinatenumrechnung über eine Voreinstellungsdatei oder einen direkten Wert.
    • ErrorEvent wird im Hauptthread ausgelöst, wenn ein Fehlerereignis von ClientConnection für ein zugeordnetes Gerät auftritt.
  • DeviceMapper:
    • Weist zur Laufzeit verbundene Geräte zu.
    • Rufen Sie unter Inverse3 die Informationen zur Stromversorgung und zur Ausrichtung des Gehäuses für jedes Gerät der Serie „ Inverse3 “ ab.
    • Modi von DeviceInfoPollingMode: Manual, Once (Standard) oder Continuous
    • devicesInfoPollDelay mit einem garantierten Mindestwert 1sec, wenn die Körperausrichtung angefordert wird, andernfalls 0.5sec.
    • Wird nur initialisiert, wenn die Komponente aktiviert ist.
    • Gefilterte Geräte-Getter:
      • GetInverse3Devices(handedness) Inverse3-Geräte abruft, die nach der angegebenen Händigkeit gefiltert sind.
      • GetVerseGripDevices(handedness) ruft VerseGrip-Geräte ab, die mit „ Inverse3 “-Geräten verknüpft sind, welche der angegebenen Händigkeit entsprechen.
      • GetInverse3(handedness) ruft das erste „ Inverse3 “-Gerät ab, das der angegebenen Händigkeit entspricht.
      • GetInverse3(verseGrip) ruft das „ Inverse3 “-Gerät ab, das einem bestimmten VerseGrip-Gerät zugeordnet ist.
      • GetVerseGrip(inverse3) ruft das VerseGrip-Gerät ab, das einem angegebenen „ Inverse3 “-Gerät zugeordnet ist.
  • „OrientationSettings“ wurde zu den Komponenten „VerseGripCursor“ und „Inverse3Body“ hinzugefügt.
  • VerseGrip.Orientation ersetzt VerseGrip.LocalRotation.
  • Expliziter Inverse3D-Daten-Typ für den Cache von Inverse3:
    • Eigenschaften der zwischengespeicherten Zustände: CursorPosition, JointsAngles, JointsAngularVelocity, Orientation,
    • GravityCompensation, StatusPowerSupply, ConfigTorqueScaling
    • Eigenschaften der zwischengespeicherten Steuerausgaben: ControlMode, CursorForceOutput, CursorPositionOutput, JointsTorqueOutput, JointsAnglesOutput.
    • coordinateConverter wird verwendet, um empfangene und gesendete Daten in das angegebene Koordinatensystem umzurechnen.
    • Der Cache abonniert den Client, um automatisch aktualisiert zu werden.
    • Bei Cache-Aktualisierungen werden Ereignisse ausgelöst.
  • Expliziter Joint3-Struktur mit drei float-Elementen j0, j1 und j2 (verwendet von JointsSetTorque und JointsSetAngles).
  • Expliziter VerseGripData-Typ für den Cache von VerseGrip:
    • Eigenschaften der zwischengespeicherten Zustände: Orientation, IsAttached, ButtonCount.
    • Zwischengespeicherte Tastenzustände.
    • Der Cache abonniert den Client, um automatisch aktualisiert zu werden.
    • coordinateConverter wird verwendet, um empfangene Daten in das angegebene Koordinatensystem umzuwandeln.
    • Bei Cache-Aktualisierungen werden Ereignisse ausgelöst.
  • CoordinateConverter (ersetzt UnityConvert), um individuell festzulegen, wie der Koordinatenraum des Geräts in den Unity-Koordinatenraum umgewandelt wird:
    • Inverse3CoordinateConverter zur Umrechnung von Cursor-Koordinaten und Körperausrichtung.
    • VerseGripCoordinateConverter zur Umrechnung der VerseGrip-Ausrichtung.
    • Vector3Settings- und QuaternionSettings-Strukturen, die zum Speichern der Einstellungen für die Koordinatenumrechnung verwendet werden.
    • Erstellen Sie Standard-Voreinstellungen für Koordinatenumrechner für „ Inverse3 “ und „VerseGrip“ über die Komponenten oder das Assets-Menü.
      • Umrechner für die „Inverse3 “ (Arm Forward Pose) mit Einstellungen für ein Gerät, dessen Arm zum Benutzer zeigt und dessen LED-Symbol an der Seite liegt.
      • Umrechner „Inverse3 “ (Icon Forward Pose) mit Einstellungen für ein Gerät, dessen LED-Symbol zum Benutzer zeigt und dessen Arm an der Seite liegt.
      • Umrechner VerseGrip (Standard) für ein Gerät, dessen Bildschirm nach vorne zeigt und bei dem sich die Eingabetaste oben befindet.
  • ClientConnection erhält FirmwareVersion, GravityCompensation und TorqueScaling, sobald ein Gerät geöffnet wird.
  • ConnectionMonitor zeigt GravityCompensation, TorqueScaling und PowerSupply an.

Fehlerbehebungen​

  • Inverse3.DeviceStateChanged wurde fälschlicherweise auch bei JointsSetTorque und JointsSetAngles ausgelöst.
  • Automatische Wiederverbindung des Geräts nach einer Unterbrechung.
  • Bereinigung des Client-Polling-Threads beim Beenden des Builds.
  • Fehler behoben und Stabilität verbessert.
  • Problem bei der Gerätezuordnung nach dem Entladen/Laden einer Szene behoben

Veraltet​

  • ClientConnection.Configuration.HapticFrequencyHz wurde durch HapticPollFrequency ersetzt
  • ClientConnection.Configuration.PollDelayNs wurde durch HapticPollDelayNs ersetzt
  • DeviceBehaviour.ConnectionStateChangedAsync wird in der nächsten Hauptversion entfernt
  • Inverse3.Position wurde durch Inverse3.CursorPosition ersetzt
  • Inverse3.LocalPosition wurde durch Inverse3.CursorLocalPosition ersetzt
  • Inverse3.TryResetForce() wurde durch Release() ersetzt
  • VerseGrip.LocalRotation wurde durch VerseGrip.Orientation ersetzt
  • JointsSetTorque(Vector3) wurde durch JointsSetTorques(Joint3) ersetzt
  • JointsSetTorque(float, float, float) wurde durch JointsSetTorques(float, float, float) ersetzt
  • JointsSetAngles(Vector3) wurde durch JointsSetAngles(Joint3) ersetzt

← Zurück zur Startseite