본문으로 건너뛰기

← 뒤로:목차 페이지

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의 오류 이벤트가 추가되었을 때(메인 스레드에서) 발생합니다.
  • 디바이스맵퍼:
    • 실행 시 연결된 장치를 매핑합니다.
    • 각 Inverse3 장치에 대해,Inverse3 의 전원 공급 장치 및 본체 방향을 가져옵니다.
    • DeviceInfoPollingMode 의 모드는 Manual、Once(기본값), 또는 Continuous 입니다
    • devicesInfoPollDelay 는 차체의 방향이 지정된 경우의 안전한 최소값 1sec , 그 외의 경우에는 0.5sec 로 설정됩니다.
    • 컴포넌트가 활성화된 경우에만 초기화됩니다.
    • 필터링된 디바이스의 게터:
      • GetInverse3Devices(handedness) 는 지정된 주 손잡이 기준으로 필터링된 Inverse3 장치를 가져옵니다.
      • GetVerseGripDevices(handedness) 는 지정된 주 손과 일치하는 Inverse3 장치에 연결된 VerseGrip 장치를 가져옵니다.
      • GetInverse3(handedness) 는 지정된 주 손과 일치하는 첫 번째 Inverse3 장치를 가져옵니다.
      • GetInverse3(verseGrip) 는 지정된 VerseGrip 장치와 연결된 Inverse3 장치를 가져옵니다.
      • GetVerseGrip(inverse3) 는 지정된 Inverse3 장치와 연결된 VerseGrip 장치를 가져옵니다.
  • VerseGripCursor 및 Inverse3Body 컴포넌트에 OrientationSettings가 추가되었습니다.
  • VerseGrip.Orientation 는 VerseGrip.LocalRotation 로 대체합니다.
  • Inverse3 캐시를 위한 명시적인 Inverse3D데이터 유형:
    • 캐시된 상태 속성: CursorPosition、JointsAngles、JointsAngularVelocity、Orientation、 GravityCompensation、StatusPowerSupply、ConfigTorqueScaling
    • 캐시된 제어 출력 속성: ControlMode、CursorForceOutput、CursorPositionOutput、JointsTorqueOutput、 JointsAnglesOutput。
    • coordinateConverter 는 지정된 좌표계에서 수신 데이터와 송신 데이터를 변환하는 데 사용됩니다.
    • 캐시는 클라이언트를 구독하여 자동으로 업데이트됩니다.
    • 캐시가 업데이트될 때 이벤트를 발생시킵니다.
  • 3개의 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(팔 앞으로 뻗기 자세) 변환: 팔을 사용자 쪽으로 향하게 하고, LED 아이콘이 측면에 있는 기기를 위한 설정을 적용하는 변환.
      • Inverse3(아이콘 전방 방향) 변환: LED 아이콘이 사용자 쪽을 향하고, 팔이 측면에 위치한 기기를 위한 설정을 포함하는 변환입니다.
      • VerseGrip(기본값) 변환: 화면을 정면으로 향하게 하고, 사용자 입력 버튼이 상단에 위치한 기기용 변환입니다.
  • 클라이언트 연결 는, 기기를 열었을 때 FirmwareVersion、GravityCompensation、TorqueScaling 을 가져옵니다.
  • 연결 모니터 는 GravityCompensation、TorqueScaling、PowerSupply 을 표시합니다.

버그 수정​

  • Inverse3.DeviceStateChanged 하지만 JointsSetTorque 그리고 JointsSetAngles 발화 문제를 수정했습니다
  • 절단 후 장치가 자동으로 다시 연결되도록 수정
  • 빌드 완료 시 클라이언트의 폴링 스레드를 정리하도록 수정
  • 버그 수정 및 안정성 향상
  • 씬의 언로드/로드 후 디바이스 매핑 수정

권장하지 않음​

  • 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) 로 대체되었습니다

← 목차 페이지로 돌아가기