본문으로 건너뛰기

← 색인 페이지로 돌아가기

2.1.1 변경 로그

종속성​

  • haply-inverse-c.dll을 버전 2.1.1로 업데이트 (요구 사항: Inverse SDK >= 2.1)
  • Haply.Inverse.dll을 버전 2.1.1로 업데이트
  • com.unity.xr.core-utils 버전 2.3.0 추가
경고

Unity 2022.1.0f1 이전 버전과의 호환성이 깨졌습니다. 호환성 문제가 발생하면 최신 버전으로 업데이트하십시오.

호환성 손상 변경 사항​

  • Inverse3 및 VerseGrip는 ConnectionStateChanged 이벤트의 첫 번째 인수로 device를 전달합니다.
    • ConnectionStateChanged(state, prevState) > ConnectionStateChanged(device, state, prevState)
    • ConnectionStateChangedAsync(state, prevState) > ConnectionStateChangedAsync(device, state, prevState)
  • DeviceMapper의 State 속성이 읽기 전용으로 변경되었습니다.

새로운 기능​

  • Inverse3Body 컴포넌트는 Inverse3 디바이스의 본체 방향을 지정된 GameObject에 적용합니다.
  • Inverse3:
    • 디바이스 데이터(인스펙터)는 ControlMode와 디바이스로 전송된 마지막 Force, Position 또는 Angles를 표시합니다.
    • JointsAngles 및 JointsAngularVelocity.
    • Powered는 디바이스의 현재 전원 공급 여부를 나타냅니다.
    • PowerSupplyStatusChanged Unity 이벤트는 전원 공급 상태가 변경될 때마다 발생합니다.
    • Orientation은 Inverse3 디바이스의 현재 방향을 가져옵니다.
    • OrientationChangedAsync 이벤트는 본체 방향이 변경될 때마다 발생합니다.
    • RequestOrientation()은 본체 방향을 수동으로 요청합니다.
    • ControlMode는 현재 제어 모드(CursorForce, CursorPosition, JointsTorques, JointsAngles)를 가져옵니다.
    • ControlModeChanged Unity 이벤트는 제어 모드가 변경될 때마다 발생합니다.
    • ForceOutput, PositionOutput, JointsTorqueOutput 및 JointsAnglesOutput은 현재 출력값을 가져옵니다.
    • Release()는 null 힘을 전송하여 디바이스 제어를 재설정합니다(TryResetForce()를 대체함).
    • CoordinateConverter는 프리셋 파일 또는 직접 입력한 값으로 좌표 변환 설정을 정의합니다.
    • ErrorEvent는 매핑된 디바이스와 관련된 ClientConnection 오류 이벤트가 추가되면 (메인 스레드에서) 발생합니다.
  • VerseGrip:
    • CoordinateConverter는 프리셋 파일 또는 직접 입력한 값으로 좌표 변환 설정을 정의합니다.
    • ErrorEvent는 매핑된 디바이스와 관련된 ClientConnection 오류 이벤트가 추가되면 (메인 스레드에서) 발생합니다.
  • DeviceMapper:
    • 런타임에 연결된 디바이스를 매핑합니다.
    • 각 Inverse3 디바이스의 Inverse3 Power Supply 및 Body Orientation을 가져옵니다.
    • DeviceInfoPollingMode 모드는 Manual, Once(기본값) 또는 Continuous입니다.
    • devicesInfoPollDelay의 안전 최솟값은 본체 방향을 요청하는 경우 1sec, 그렇지 않은 경우 0.5sec입니다.
    • 컴포넌트가 활성화된 경우에만 초기화됩니다.
    • 필터링된 디바이스 getter:
      • GetInverse3Devices(handedness)는 지정된 손 방향(handedness)으로 필터링된 Inverse3 디바이스를 가져옵니다.
      • GetVerseGripDevices(handedness)는 지정된 손 방향과 일치하는 Inverse3 디바이스와 연결된 VerseGrip 디바이스를 가져옵니다.
      • GetInverse3(handedness)는 지정된 손 방향과 일치하는 첫 번째 Inverse3 디바이스를 가져옵니다.
      • GetInverse3(verseGrip)는 주어진 VerseGrip 디바이스와 연결된 Inverse3 디바이스를 가져옵니다.
      • GetVerseGrip(inverse3)는 지정된 Inverse3 디바이스와 연결된 VerseGrip 디바이스를 가져옵니다.
  • OrientationSettings가 VerseGripCursor 및 Inverse3Body 컴포넌트에 추가되었습니다.
  • VerseGrip.Orientation이 VerseGrip.LocalRotation을 대체합니다.
  • Inverse3 캐시를 위한 명시적 Inverse3Data 타입:
    • 캐시된 상태 속성: CursorPosition, JointsAngles, JointsAngularVelocity, Orientation,
    • GravityCompensation, StatusPowerSupply, ConfigTorqueScaling
    • 캐시된 제어 출력 속성: ControlMode, CursorForceOutput, CursorPositionOutput, JointsTorqueOutput, JointsAnglesOutput.
    • coordinateConverter는 지정된 좌표계로 수신 및 전송된 데이터를 변환하는 데 사용됩니다.
    • 캐시는 클라이언트를 구독하여 자동으로 업데이트됩니다.
    • 캐시가 업데이트되면 이벤트가 발생합니다.
  • 세 개의 float 멤버 j0, j1, j2를 가진 명시적 Joint3 구조체(JointsSetTorque 및 JointsSetAngles에서 사용됨).
  • VerseGrip 캐시를 위한 명시적 VerseGripData 타입:
    • 캐시된 상태 속성: Orientation, IsAttached, ButtonCount.
    • 캐시된 버튼 상태.
    • 캐시는 클라이언트를 구독하여 자동으로 업데이트됩니다.
    • coordinateConverter는 지정된 좌표계로 수신된 데이터를 변환하는 데 사용됩니다.
    • 캐시가 업데이트되면 이벤트가 발생합니다.
  • CoordinateConverter(UnityConvert 대체)는 디바이스 좌표 공간을 Unity 좌표 공간으로 변환하는 방법을 개별적으로 정의합니다:
    • Inverse3CoordinateConverter는 커서 좌표와 본체 방향을 변환합니다.
    • VerseGripCoordinateConverter는 VerseGrip 방향을 변환합니다.
    • Vector3Settings 및 QuaternionSettings 구조체는 좌표계 변환 설정을 저장하는 데 사용됩니다.
    • 컴포넌트 또는 Assets 메뉴에서 Inverse3 및 VerseGrip용 기본 좌표 변환기 프리셋을 생성합니다.
      • Inverse3 (Arm Forward Pose) 변환기: 팔이 사용자를 향하고 LED 아이콘이 측면에 있는 디바이스용 설정입니다.
      • Inverse3 (Icon Forward Pose) 변환기: LED 아이콘이 사용자를 향하고 팔이 측면에 있는 디바이스용 설정입니다.
      • VerseGrip (기본값) 변환기: 화면을 향하고 사용자 입력 버튼이 위쪽에 있는 디바이스용입니다.
  • 디바이스가 열리면 ClientConnection이 FirmwareVersion, GravityCompensation, TorqueScaling을 가져옵니다.
  • ConnectionMonitor는 GravityCompensation, TorqueScaling, PowerSupply를 표시합니다.

버그 수정​

  • JointsSetTorque 및 JointsSetAngles 사용 시에도 Inverse3.DeviceStateChanged가 트리거되는 현상 수정
  • 연결 해제 후 디바이스 자동 재연결
  • 빌드 종료 시 클라이언트 폴링 스레드 정리
  • 버그 수정 및 안정성 개선.
  • 씬 언로드/로드 후 디바이스 매핑 수정

지원 중단​

  • ClientConnection.Configuration.HapticFrequencyHz는 HapticPollFrequency로 대체됩니다
  • ClientConnection.Configuration.PollDelayNs는 HapticPollDelayNs로 대체됩니다
  • DeviceBehaviour.ConnectionStateChangedAsync는 다음 메이저 릴리스에서 제거될 예정입니다
  • Inverse3.Position은 Inverse3.CursorPosition으로 대체됩니다
  • Inverse3.LocalPosition은 Inverse3.CursorLocalPosition으로 대체됩니다
  • Inverse3.TryResetForce()는 Release()로 대체됩니다
  • VerseGrip.LocalRotation은 VerseGrip.Orientation으로 대체됩니다
  • JointsSetTorque(Vector3)는 JointsSetTorques(Joint3)으로 대체됩니다
  • JointsSetTorque(float, float, float)는 JointsSetTorques(float, float, float)로 대체됩니다
  • JointsSetAngles(Vector3)는 JointsSetAngles(Joint3)으로 대체됩니다

← 목차 페이지로 돌아가기