주요 콘텐츠로 건너뛰기
버전: 2.1.1

Haply::Inverse::Unity::Inverse3

장치 데이터 및 상태 업데이트를 관리하는 Inverse3 장치 컨트롤러를 나타냅니다. 더 보기...

Haply.Inverse.Unity.DeviceBehaviour, MonoBehaviour에서 상속합니다.

공개 이벤트

이름
디바이스 델리게이트디바이스 상태 변경(
) 각 햅틱 프레임에서 트리거되는 이벤트입니다.
Action< Inverse3 >OrientationChangedAsync()
Inverse3 디바이스의 본체 방향이 변경될 때마다 트리거됩니다.

공공 기능

이름
위임 무효DeviceDelegate(Inverse3 inverse3)
Inverse3 디바이스의 Inverse3.DeviceStateChanged 이벤트를 처리하는 메서드를 나타냅니다.
void요청전원공급상태(
) 현재 전원 공급 상태(전원 공급 중)에 대한 업데이트를 요청하고 완료되면 PowerSupplyStatusChanged 이벤트를 트리거합니다.
voidRequestOrientation(
) Inverse3 본문 오리엔테이션 업데이트를 요청하고 완료 시 오리엔테이션 변경 동기화 이벤트를 트리거합니다.
void커서 설정 로컬 힘(Vector3 힘)
장치의 로컬 공간에서 커서에 가해지는 힘을 x, y, z 축을 따라 뉴턴(N) 단위로 설정합니다.
void커서 설정 로컬 힘(float x, float y, float z)
void커서 설정 힘(벡터3 힘에서)
커서에 가해지는 힘을 월드 스페이스에서 뉴턴(N) 단위로 설정합니다.
voidCursorSetForce(float x, float y, float z)
void커서 설정 로컬 위치(벡터3 위치)
디바이스의 로컬 공간에서 커서의 위치 설정값을 x, y, z 축을 따라 미터(m) 단위로 설정합니다.
void커서 설정 위치(float x, float y, float z)
void커서 설정 위치(벡터3 위치에서)
커서의 위치 설정값을 월드 스페이스에서 미터(m) 단위로 설정합니다.
void커서 설정 위치(float x, float y, float z)
void조인트 설정 토크(조인트3 토크)
Inverse3 장치의 각 조인트에 대해 원하는 토크를 뉴턴 밀리미터(Nmm) 단위로 설정합니다.
voidJointsSetTorques(float t0, float t1, float t2)
void조인트 설정 토크(벡터3 각도)
voidJointsSetTorque(float x, float y, float z)
void조인트 설정 각도(조인트3 각도)
Inverse3 장치의 각 조인트에 대해 원하는 조인트 각도를 도(°)로 설정합니다.
voidJointsSetAngles(float 알파0, float 알파1, float 알파2)
void조인트 세트 각도(벡터3 각도)
bool릴리스(
커서에 대한 모든 힘과 위치 제어를 초기화하려고 시도합니다.
boolTryResetForce()
Vector3트랜스폼 포인트(벡터3 위치)
캐시된 로컬투월드매트릭스를 사용하여 장치 또는 커서의 로컬 공간에서 월드 공간으로 위치를 변환합니다.
Vector3TransformVector(벡터3 벡터)
캐시된 로컬투월드매트릭스를 사용하여 디바이스 또는 커서의 로컬 공간에서 월드 공간으로 벡터를 변환합니다.
Vector3역변환점(벡터3 위치)
캐시된 월드투로컬매트릭스를 사용하여 월드 스페이스에서 장치 또는 커서의 로컬 스페이스로 위치를 다시 변환합니다.
Vector3역변환 벡터(벡터3 벡터)
캐시된 월드투로컬매트릭스를 사용하여 벡터를 월드 스페이스에서 장치 또는 커서의 로컬 스페이스로 다시 변환합니다.
문자열 재정의ToString(
) 객체의 이름, 클래스 유형, 디바이스 ID, 선택된 손동작을 포함하여 사람이 읽을 수 있는 설명을 제공하는 객체의 문자열 표현을 반환합니다.

보호되는 기능

이름
가상 재정의 무효화Setup(
이 메서드는 _performSetup 플래그가 매 프레임마다 호출하기에는 너무 무거운 계산을 처리하도록 설정되면 자동으로 호출됩니다. 이 메서드는 기본 호출을 유지하도록 주의를 기울여 재정의할 수 있습니다. SetSetupToPerform을 사용하여 설정 호출을 트리거합니다.
가상 재정의 무효화고정 업데이트()

공용 속성

이름
재정의 장치 유형DeviceType
디바이스 유형을 가져오는데, 항상 이 컨트롤러에 대해 DeviceType.Inverse3을 반환합니다.
커서 동작 재정의커서
Inverse3BodyBody
게임 오브젝트가 자동으로 역3 바디 방향으로 회전합니다.
Vector3커서 로컬 위치
디바이스 로컬 공간에서 Inverse3 커서의 위치를 미터(m) 단위로 가져옵니다.
Vector3로컬 위치
Vector3커서 위치
커서 로컬 위치 및 로컬 투 월드 매트릭스에서 Inverse3 커서 월드 스페이스 위치를 가져옵니다.
Vector3위치
Vector3커서 로컬 속도
디바이스 로컬 공간에서 Inverse3 커서의 속도를 초당 미터(m/s) 단위로 가져옵니다.
Vector3로컬 속도
Vector3커서 속도
커서 로컬 속도와 로컬 투 월드 매트릭스에서 Inverse3 커서 월드 스페이스 속도를 구합니다.
Vector3속도
조인트3조인트 각도
Inverse3 디바이스의 현재 조인트 각도를 도 단위로 가져옵니다.
조인트3조인트 각속도
Inverse3 디바이스 조인트의 현재 각속도를 초당 도 단위로 가져옵니다.
핸드드니스 유형SelectedHandedness
Inverse3 디바이스의 원하는 양손잡이 유형을 가져오거나 설정합니다.
핸드드니스 유형Handedness
런타임에 디바이스의 핸드드니스 유형을 가져옵니다.
bool전원 켜짐
현재 디바이스에 전원이 공급되고 있는지 여부를 나타냅니다.
쿼터니언방향
마지막으로 수신한 방향 데이터를 기반으로 Inverse3 디바이스의 현재 방향을 가져옵니다.
Vector3작업 공간 중심 왼쪽
왼손잡이 디바이스의 작업 공간 중심 로컬 좌표입니다.
Vector3작업 공간 중심 오른쪽
HandednessType.Right-handed 장치의 작업 공간 중심 로컬 좌표입니다.
Vector3작업 공간 중심
핸드드니스 값에 따른 작업 공간 중심 로컬 좌표입니다.
제어 모드ControlMode
디바이스의 현재 제어 모드를 가져옵니다.
Vector3ForceOutput
커서 설정 힘 또는 커서 설정 로컬 힘 메서드가 장치에 보낸 마지막 힘입니다.
Vector3PositionOutput
커서 설정 위치 또는 커서 설정 로컬 위치 메서드가 디바이스로 전송한 마지막 위치입니다.
조인트3조인트토크출력
조인트세트토크 메서드가 장치로 전송한 마지막 토크입니다.
조인트3조인트 각도 출력
조인트셋각 메서드가 장치로 전송한 마지막 각도입니다.
매트릭스4x4로컬 투 월드 매트릭스
디바이스 또는 커서 공간을 월드 공간으로 변환하는 매트릭스입니다.
매트릭스4x4월드투로컬매트릭스
월드 공간에서 디바이스 또는 커서 공간으로 다시 변환하는 매트릭스입니다.

보호된 속성

이름
BaseCoordinateConverter 재정의CoordinateConverter
변환스페이스 트랜스폼 레퍼런스
로컬 투 월드 매트릭스월드 투 로컬 매트릭스 설정에 사용되는 레퍼런스 트랜스폼입니다.

공개 속성

이름
UnityEvent< Inverse3, bool >전원 공급 상태 변경
Inverse3 디바이스의 전원 공급 상태가 변경될 때마다 트리거됩니다.
UnityEvent< Inverse3, ControlMode >ControlModeChanged
디바이스의 제어 모드가 변경될 때 트리거되는 이벤트입니다.

추가 상속된 멤버

Haply.Inverse.Unity.DeviceBehaviour에서 상속된 공개 이벤트

이름
Action< DeviceBehaviour, Ret >오류 이벤트()
연결 상태 델리게이트ConnectionStateChanged()
디바이스 연결 상태가 변경되면 트리거되는 이벤트입니다.
Action< DeviceBehaviour, DeviceConnectionState, DeviceConnectionState >연결 상태 변경 비동기(
) 장치 연결 상태가 변경된 직후 트리거되는 이벤트입니다.

Haply.Inverse.Unity.DeviceBehaviour에서 상속된 공용 함수

이름
위임 무효연결 상태 델리게이트(DeviceBehaviour 장치, DeviceConnectionState 상태, DeviceConnectionState 이전 상태)
장치의 연결 상태 변경 처리를 위한 델리게이트입니다.
voidSetSetupToPerform(
) 다음 프레임에서 설정을 수행하도록 지정합니다.

Haply.Inverse.Unity.DeviceBehaviour에서 상속된 보호 함수

이름
가상 무효Awake()
voidOnEnable()
voidOnDisable()
voidOnDestroy()

Haply.Inverse.Unity.DeviceBehaviour에서 상속된 공용 속성

이름
intSelectedDeviceId
uintDeviceId
디바이스 ID를 가져옵니다.
장치 연결 상태연결 상태
디바이스의 현재 연결 상태를 가져오거나 설정합니다.
boolIsConnected
디바이스가 연결되었는지 여부를 가져옵니다.
boolIsOpened
디바이스가 열려 있는지 여부를 가져옵니다.
boolIsReady

Haply.Inverse.Unity.DeviceBehaviour에서 상속된 보호된 속성

이름
boolIsCursorSet
커서가 설정되었는지 여부를 나타냅니다.

Haply.Inverse.Unity.DeviceBehaviour에서 상속된 공용 속성

이름
const intANY_ID
UnityEvent< DeviceBehaviour >DeviceOpened
연결 상태가 DeviceConnectionState.Opened 상태로 전환될 때 트리거되는 이벤트입니다.
UnityEvent< DeviceBehaviour >DeviceClosed
연결 상태가 DeviceConnectionState.Connected 상태로 전환될 때 트리거되는 이벤트입니다.

Haply.Inverse.Unity.DeviceBehaviour에서 상속된 보호된 속성

이름
문자열_객체이름

자세한 설명

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

디바이스 데이터 및 상태 업데이트를 관리하는 Inverse3 디바이스 컨트롤러를 나타냅니다.

이 컴포넌트는 Unity 씬에서 실제 Inverse3 디바이스를 나타내는 게임 오브젝트에 첨부해야 합니다.

공개 이벤트 문서

이벤트 장치 상태 변경

DeviceDelegate DeviceStateChanged()

각 햅틱 프레임에서 트리거되는 이벤트입니다.

참조: 클라이언트 구성.햅틱 폴 주파수

커서의 위치와 속도를 실시간으로 업데이트합니다.

이 이벤트는 커서 상태를 지속적으로 추적해야 하거나 실시간 제어 명령을 적용해야 하는 애플리케이션에 유용합니다. 이 이벤트 중에는 CursorPosition, CursorVelocity, CursorLocalPosition 또는 CursorLocalVelocity와 같은 프로퍼티를 사용할 수 있습니다.

그리고 다음과 같은 제어 방법도 있습니다:

이 이벤트가 트리거되는 빈도는 햅틱 루프 주파수에 의해 결정되며, ClientConfiguration.HapticPollFrequency를 통해 구성할 수 있습니다.

이벤트 오리엔테이션 변경 동기화

Action< Inverse3 > OrientationChangedAsync()

Inverse3 디바이스의 본체 방향이 변경될 때마다 트리거됩니다.

공용 함수 문서

함수 디바이스 델리게이트

delegate void DeviceDelegate(
Inverse3 inverse3
)

Inverse3 디바이스의 Inverse3.DeviceStateChanged 이벤트를 처리하는 메서드를 나타냅니다.

매개변수:

  • inverse3 이벤트를 발생시키는 Inverse3 디바이스 인스턴스입니다.

함수 요청전원공급상태

void RequestPowerSupplyStatus()

현재 전원 공급 상태(Powered)에 대한 업데이트를 요청하고 완료되면 PowerSupplyStatusChanged 이벤트를 발동합니다.

참고: 이 메서드를 자주 호출하면(예: 업데이트 루프 내에서) 성능이 저하되고 햅틱이 흔들릴 수 있습니다. 특정 사용자 동작이나 이벤트에 따라 이 메서드를 신중하게 사용하거나 DeviceMapperDeviceMapper.DeviceInfoPollingMode.Continuous 모드를 사용하는 것이 좋습니다.

함수 요청 방향

void RequestOrientation()

Inverse3 바디 오리엔테이션에 대한 업데이트를 요청하고 완료되면 오리엔테이션 변경 동기화 이벤트를 발동합니다.

디바이스의 방향 데이터를 수동으로 새로 고치려면 이 방법을 사용합니다. 바디가 설정되어 있으면 해당 트랜스폼이 새 방향으로 자동 업데이트됩니다. 참고: 이 메서드를 자주 호출(예: 업데이트 루프 내)하면 성능이 저하되고 햅틱이 흔들릴 수 있습니다. 특정 사용자 동작이나 이벤트에 따라 이 메서드를 신중하게 사용하거나 DeviceMapperDeviceMapper.DeviceInfoPollingMode.Continuous 모드를 사용하는 것이 좋습니다.

함수 커서 설정 로컬 힘

void CursorSetLocalForce(
in Vector3 force
)

장치의 로컬 공간에서 x, y, z 축을 따라 커서에 가해지는 힘을 뉴턴(N) 단위로 설정합니다.

매개변수:

  • 장치의 로컬 공간에서 원하는 힘 벡터(뉴턴(N) 단위)입니다.

예외:

  • 클라이언트 연결이 설정되지 않은 경우 발생하는 InvalidOperationException입니다.
  • 서비스에서 예기치 않은 오류가 수신된 경우 발생하는 예외입니다.

이 메서드는 처리되지 않은 힘 벡터를 로컬 공간의 장치로 직접 전송하며, CursorLocalPositionCursorLocalVelocity와 함께만 사용해야 합니다. 힘 계산이 월드 스페이스 좌표(CursorPositionCursorVelocity)를 기반으로 하거나 변형된(위치, 회전 또는 스케일) 컨트롤러를 포함하는 경우, 대신 CursorSetForce를 사용해야 합니다.

힘이 발생하면 장치의 LED가 녹색으로 바뀝니다. Inverse3 장치는 총 10N까지 힘을 생성할 수 있지만, 달성 가능한 최대 힘은 작업 공간에 따라 다릅니다. 요청된 힘이 장치의 성능을 초과하면 동일한 방향으로 가능한 최대 힘을 생성하거나 힘 스케일링이 활성화된 경우 비슷한 방향을 유지하면서 달성 가능한 최대 힘을 제공하도록 조정합니다. 모든 축의 힘을 0으로 설정하면 커서에 순 힘이 생성되지 않지만 중력 보정 기능을 활성화하면 커서가 중력 보정 상태를 유지합니다.

함수 커서 설정 로컬 힘

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

함수 CursorSetForce

void CursorSetForce(
in Vector3 force
)

커서에 가해지는 힘을 월드 스페이스에서 뉴턴(N) 단위로 설정합니다.

매개변수:

  • 원하는 힘 벡터를 월드 스페이스에서 뉴턴(N) 단위로 표시합니다.

참조: 커서 설정 로컬 힘, 역변환 벡터

이 메서드는 제공된 힘 벡터를 장치로 보내기 전에 세계 공간에서 장치의 로컬 공간으로 변환합니다. 힘 계산이 월드 스페이스 좌표를 기반으로 할 때 사용해야 합니다. 로컬 공간을 직접 제어하려면 대신 CursorSetLocalForce를 사용합니다.

함수 CursorSetForce

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

함수 커서 설정 로컬 위치

void CursorSetLocalPosition(
in Vector3 position
)

장치의 로컬 공간에서 커서의 위치 설정값을 x, y 및 z 축을 따라 미터(m) 단위로 설정합니다.

매개변수:

  • 위치 디바이스의 로컬 공간에서 원하는 위치 벡터(미터(m) 단위)입니다.

예외:

  • 클라이언트 연결이 설정되지 않은 경우 발생하는 InvalidOperationException입니다.
  • 서비스에서 예기치 않은 오류가 수신된 경우 발생하는 예외입니다.

이 메서드는 커서를 지정된 위치로 이동하는 위치 설정값을 설정합니다. 처리되지 않은 위치를 로컬 공간의 장치로 직접 전송합니다. 위치 계산이 월드 스페이스 좌표(CursorPosition, CursorVelocity)를 기반으로 하거나 변환된(위치, 회전 또는 스케일) 컨트롤러를 포함하는 경우 CursorSetPosition을 고려해야 합니다.

위치 제어 모드에서는 디바이스의 LED가 파란색으로 바뀝니다. 획득할 수 없는 위치를 설정하면 Inverse3 디바이스 암이 천천히 내려오거나 현재 위치에 유지됩니다. 위치 제어 모드를 종료하려면 힘을 가하거나(0이 될 수 있음) TryResetForce를 사용하거나 장치에서 연결을 끊습니다.

함수 커서 설정 로컬 위치

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

함수 커서 설정 위치

void CursorSetPosition(
in Vector3 position
)

커서의 위치 설정값을 월드 스페이스에서 미터(m) 단위로 설정합니다.

매개변수:

  • 위치 월드 스페이스에서 원하는 위치 벡터(미터(m) 단위)입니다.

참조: 커서 설정 로컬 위치, 역변환 포인트

이 방법은 위치 설정값을 설정하기 전에 제공된 위치를 세계 공간에서 디바이스의 로컬 공간으로 변환합니다. 위치 계산이 월드 스페이스 좌표를 기반으로 할 때 사용해야 합니다. 로컬 공간을 직접 제어하려면 대신 CursorSetLocalPosition을 사용하세요.

함수 커서 설정 위치

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

함수 JointsSetTorques

void JointsSetTorques(
Joint3 torques
)

Inverse3 장치의 각 조인트에 대해 원하는 토크를 뉴턴 밀리미터(Nmm) 단위로 설정합니다.

매개변수:

  • 토크 각 장치 조인트의 원하는 토크입니다.

예외:

  • throwException이 true이고 클라이언트 연결이 설정되지 않은 경우 발생하는 InvalidOperationException입니다.
  • 서비스에서 예기치 않은 오류가 수신된 경우 발생하는 예외입니다.

토크를 발생시키면 기기의 LED가 녹색으로 바뀝니다.

Inverse3 장치는 각 조인트에서 최대 1000Nmm의 토크를 생성할 수 있습니다. 원하는 토크가 이 한계를 초과하면 장치가 대신 최대 토크를 생성합니다.

함수 JointsSetTorques

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

함수 JointsSetTorque

void JointsSetTorque(
Vector3 angles
)

함수 JointsSetTorque

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

함수 JointsSetAngles

void JointsSetAngles(
Joint3 angles
)

Inverse3 장치의 각 조인트에 대해 원하는 조인트 각도를 도(°)로 설정합니다.

매개변수:

  • 각도 각 장치 조인트에서 원하는 각도입니다.

예외:

  • throwException이 true이고 클라이언트 연결이 설정되지 않은 경우 발생하는 InvalidOperationException입니다.
  • 서비스에서 예기치 않은 오류가 수신된 경우 발생하는 예외입니다.

디바이스의 원하는 조인트 각도를 설정합니다. 얻을 수 없는 각도를 설정하면 장치가 물리적으로 얻을 수 있는 가장 가까운 구성으로 이동합니다. 예를 들어 다음을 설정합니다. (-90, 180, 0) 을 누르면 머리가 평행하고 팔이 몸과 수직이 되는 위치로 기기가 이동합니다.

함수 JointsSetAngles

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

함수 JointsSetAngles

void JointsSetAngles(
Vector3 angles
)

함수 릴리스

bool Release()

커서에 대한 모든 힘과 위치 제어를 초기화하려고 시도합니다.

반환합니다: 강제 재설정에 성공하면 true, 클라이언트 연결이 설정되지 않았거나 예기치 않은 오류가 발생하면 false를 반환합니다.

이 메서드는 클라이언트 연결이 이미 닫혀 있는 경우 예외를 발생시키지 않으므로 프로그램 종료 중이나 OnDisable 이벤트에서 사용하기에 적합합니다. 클라이언트 연결이 설정되지 않았거나 힘 및 위치 제어를 재설정하는 동안 서비스에서 예기치 않은 오류가 수신되면 false를 반환합니다.

함수 TryResetForce

bool TryResetForce()

함수 트랜스폼포인트

Vector3 TransformPoint(
Vector3 position
)

캐시된 로컬투월드매트릭스를 사용하여 장치 또는 커서의 로컬 공간에서 월드 공간으로 위치를 변환합니다.

매개변수:

  • 위치 로컬 위치.

참조: 로컬투월드매트릭스

Return: 반환: 세계 순위.

역변환점을 사용하면 월드에서 로컬 공간으로 반대 변환을 수행할 수 있습니다.

함수 트랜스폼벡터

Vector3 TransformVector(
Vector3 vector
)

캐시된 로컬투월드매트릭스를 사용하여 디바이스 또는 커서의 로컬 공간에서 월드 공간으로 벡터를 변환합니다.

매개변수:

  • 벡터 로컬 벡터.

참조: 로컬투월드매트릭스

반환합니다: 월드 벡터.

역변환벡터를 사용하면 월드에서 로컬 공간으로 반대의 변환을 수행할 수 있습니다.

함수 역변환점

Vector3 InverseTransformPoint(
Vector3 position
)

캐시된 월드투로컬매트릭스를 사용하여 월드 스페이스에서 장치 또는 커서의 로컬 스페이스로 위치를 다시 변환합니다.

매개변수:

  • 위치 세계 위치.

참조: 월드투로컬매트릭스

반환: 반환: 로컬 위치.

트랜스폼포인트와 반대되는 개념입니다.

함수 역변환 벡터

Vector3 InverseTransformVector(
Vector3 vector
)

캐시된 월드투로컬매트릭스를 사용하여 벡터를 월드 스페이스에서 디바이스 또는 커서의 로컬 스페이스로 다시 변환합니다.

매개변수:

  • 벡터 월드 벡터.

참조: 월드투로컬매트릭스

반환합니다: 로컬 벡터.

트랜스폼벡터와 반대입니다.

함수 ToString

override string ToString()

객체의 이름, 클래스 유형, 디바이스 ID, 선택된 손맛을 포함하여 사람이 읽을 수 있는 설명을 제공하는 객체의 문자열 표현을 반환합니다.

반환합니다: 반환: 이름, 클래스 유형, 디바이스 ID, 선택된 핸디캡을 포함하여 현재 객체를 나타내는 문자열입니다.

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

  • "이름"은 오브젝트의 _objectName 필드에 입력합니다.
  • "클래스"는 객체의 클래스 유형 이름입니다.
  • "id"는 4자 16진수 문자열 형식의 장치 ID 또는 장치 ID가 다음과 같은 경우 "*"입니다. ANY_ID. 만약 DeviceIdANY_ID의 값은 SelectedDeviceId 가 사용됩니다.
  • "핸드드니스"는 선택한 핸드드니스이며, ".왼쪽", ".오른쪽"으로 표시되거나 다음과 같은 경우 생략됩니다. SelectedHandednessNil.

이 방법은 객체에 대한 간결하고 유익한 설명을 제공하여 디버깅 및 로깅에 도움이 됩니다.

보호된 기능 문서

함수 설정

virtual override void Setup()

이 메서드는 매 프레임마다 호출하기에는 너무 무거운 계산을 처리하도록 _performSetup 플래그가 설정되면 자동으로 호출됩니다. 이 메서드는 기본 호출을 유지하도록 주의를 기울여 재정의할 수 있습니다. SetSetupToPerform을 사용하여 설정 호출을 트리거합니다.

다시 구현합니다: Haply::Inverse::Unity::DeviceBehaviour::Setup

함수 고정 업데이트

virtual override void FixedUpdate()

다시 구현합니다: Haply::Inverse::Unity::DeviceBehaviour::FixedUpdate

공공 자산 문서

속성 DeviceType

override DeviceType DeviceType;

디바이스 유형을 가져오는데, 항상 이 컨트롤러에 대해 DeviceType.Inverse3을 반환합니다.

속성 커서

override CursorBehaviour Cursor;

이 프로퍼티는 기본 DeviceBehaviour.Cursor 프로퍼티를 재정의하며 Inverse3Cursor로 안전하게 캐스팅할 수 있습니다. 이 프로퍼티를 설정하면 DeviceBehaviour._performSetup 플래그도 업데이트됩니다.

속성 Body

Inverse3Body Body;

게임 오브젝트가 자동으로 역3 몸체 방향으로 회전합니다.

속성 커서 로컬 위치

Vector3 CursorLocalPosition;

장치 로컬 공간에서 Inverse3 커서의 위치를 미터(m) 단위로 가져옵니다.

일관된 값을 얻으려면 DeviceBehaviour.ConnectionState 장치가 DeviceConnectionState.Opened여야 합니다.

속성 LocalPosition

Vector3 LocalPosition;

속성 커서 위치

Vector3 CursorPosition;

커서 로컬 위치 및 로컬 투 월드 매트릭스에서 Inverse3 커서 월드 스페이스 위치를 가져옵니다.

참조: 트랜스폼.위치, 트랜스폼포인트

속성 위치

Vector3 Position;

속성 커서 로컬 속도

Vector3 CursorLocalVelocity;

디바이스 로컬 공간에서 Inverse3 커서의 속도를 초당 미터(m/s) 단위로 가져옵니다.

제공된 속도는 속도 추정 알고리즘을 사용하여 계산되며 추가 필터링이나 처리가 필요하지 않습니다.

일관된 값을 얻으려면 DeviceBehaviour.ConnectionState 장치가 DeviceConnectionState.Opened여야 합니다.

속성 LocalVelocity

Vector3 LocalVelocity;

속성 커서 속도

Vector3 CursorVelocity;

커서 로컬 속도와 로컬 투 월드 매트릭스에서 Inverse3 커서 월드 스페이스 속도를 구합니다.

트랜스폼 벡터

속성 속도

Vector3 Velocity;

속성 JointsAngles

Joint3 JointsAngles;

Inverse3 디바이스의 현재 조인트 각도를 도 단위로 가져옵니다.

Vector3의 각 구성 요소는 디바이스의 조인트 중 하나의 각도를 나타냅니다:

  • x: 조인트 1의 각도로, 장치의 헤드를 제어합니다.
  • y: 팔의 안쪽 관절을 제어하는 관절 2의 각도입니다.
  • z: 조인트 3의 각도 - 팔의 바깥쪽 조인트를 제어합니다.

이러한 각도는 디바이스의 움직이는 부품의 공간 방향을 이해하고 제어하는 데 필수적입니다.

속성 조인트 각속도

Joint3 JointsAngularVelocity;

Inverse3 디바이스 조인트의 현재 각속도를 초당 도 단위로 가져옵니다.

Vector3의 각 구성 요소는 장치 조인트 중 하나의 각속도를 나타냅니다:

  • x: 장치의 헤드를 제어하는 조인트 1의 각속도입니다.
  • y: 팔의 안쪽 관절을 제어하는 관절 2의 각속도입니다.
  • z: 팔의 바깥쪽 관절을 제어하는 관절 3의 각속도입니다.

각속도는 관절이 움직이는 속도를 모니터링하는 데 도움이 되며, 이는 동적 제어 및 피드백 애플리케이션에 매우 중요합니다.

속성 SelectedHandedness

HandednessType SelectedHandedness;

Inverse3 디바이스의 원하는 양손잡이 유형을 가져오거나 설정합니다.

HandednessType.Nil로 설정하면 런타임 시 디바이스맵퍼에 의해 처음 발견된 디바이스가 선택됩니다.

Handedness를 사용하여 런타임에 실제 디바이스의 핸드헬드 여부를 파악합니다.

속성 Handedness

HandednessType Handedness;

런타임에 디바이스의 핸드드니스 유형을 가져옵니다.

속성 Powered

bool Powered;

현재 디바이스에 전원이 공급되고 있는지 여부를 나타냅니다.

참조: DeviceMapper.devicesInfoPollingMode

이 속성은 실시간으로 새로 고쳐지지 않습니다. 요청전원공급상태를 사용하여 수동으로 업데이트하거나 디바이스맵퍼를 사용하여 자동으로 업데이트할 수 있습니다.

속성 오리엔테이션

Quaternion Orientation;

마지막으로 수신한 방향 데이터를 기반으로 Inverse3 디바이스의 현재 방향을 가져옵니다.

참조: DeviceMapper.devicesInfoPollingMode

이 속성은 실시간으로 새로 고쳐지지 않습니다. 요청방향을 사용하여 수동으로 업데이트하거나 디바이스맵퍼를 통해 자동으로 업데이트할 수 있습니다.

속성 작업 공간 중앙 왼쪽

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

왼손잡이 기기에 대한 작업 공간 중심 로컬 좌표입니다.

참조: 커서 설정 로컬 위치, 선택된 손 방향

이 로컬 위치에 커서를 설정하면 머리가 평행하고 팔이 몸과 수직이 되는 위치로 디바이스가 이동합니다.

속성 작업 공간 중앙 오른쪽

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

HandednessType.Right-handed 장치의 작업 공간 중심 로컬 좌표입니다.

참조: 커서 설정 로컬 위치, 선택된 손 방향

이 로컬 위치에 커서를 설정하면 머리가 평행하고 팔이 몸과 수직이 되는 위치로 디바이스가 이동합니다.

속성 워크스페이스센터

Vector3 WorkspaceCenter;

핸드드니스 값에 따라 작업 공간 중심 로컬 좌표입니다.

참조: 커서 설정 로컬 위치, 선택된 손 방향

Handedness가 HandednessType.Nil인 경우 WorkspaceCenterRight를 반환합니다.

이 로컬 위치에 커서를 설정하면 머리가 평행하고 팔이 몸과 수직이 되는 위치로 디바이스가 이동합니다.

속성 ControlMode

ControlMode ControlMode;

디바이스의 현재 제어 모드를 가져옵니다.

제어 모드는 장치가 입력 명령에 응답하고 커서 위치 또는 조인트 토크와 같은 출력을 관리하는 방법을 지정합니다.

속성 ForceOutput

Vector3 ForceOutput;

커서 설정 힘 또는 커서 설정 로컬 힘 메서드가 장치에 보낸 마지막 힘입니다.

속성 PositionOutput

Vector3 PositionOutput;

커서 설정 위치 또는 커서 설정 로컬 위치 메서드가 장치에 전송한 마지막 위치입니다.

속성 JointsTorqueOutput

Joint3 JointsTorqueOutput;

조인트셋토크 메서드가 장치에 전송한 마지막 토크입니다.

속성 JointsAnglesOutput

Joint3 JointsAnglesOutput;

조인트셋각 메서드가 장치로 전송한 마지막 각도입니다.

속성 로컬투월드매트릭스

Matrix4x4 LocalToWorldMatrix;

디바이스 또는 커서 공간을 월드 공간으로 변환하는 매트릭스입니다.

참조: 공간 변환 참조, 트랜스폼 포인트, 트랜스폼 벡터

행렬은 SpaceTransformationReference에 따라 달라집니다.

이 매트릭스는 디바이스 또는 커서의 로컬 공간에서 월드 공간으로 위치와 속도를 변환하는 데 사용할 수 있습니다. 이를 통해 트랜스폼 컴포넌트의 데이터에 직접 액세스할 수 없는 환경에서도 햅틱 관련 계산을 정확하게 수행할 수 있습니다.

속성 WorldToLocalMatrix

Matrix4x4 WorldToLocalMatrix;

월드 공간에서 디바이스 또는 커서 공간으로 다시 변환하는 매트릭스입니다.

참조: 공간 변환 참조, 역변환 포인트, 역변환 벡터

행렬은 SpaceTransformationReference에 따라 달라집니다.

이 매트릭스는 계산된 힘을 월드 공간에서 디바이스 또는 커서의 로컬 공간으로 변환하는 데 사용할 수 있습니다. 이를 통해 트랜스폼 컴포넌트의 데이터에 직접 액세스할 수 없는 환경에서도 햅틱 관련 계산을 정확하게 수행할 수 있습니다.

보호 대상 자산 문서

속성 코디네이트 컨버터

override BaseCoordinateConverter CoordinateConverter;

속성 공간 변환 참조

Transform SpaceTransformationReference;

로컬투월드매트릭스월드투로컬매트릭스 설정에 사용되는 레퍼런스 트랜스폼입니다.

커서가 설정되어 있으면 해당 부모가 사용됩니다. 그렇지 않으면 현재 디바이스 트랜스폼이 사용됩니다.

공개 속성 문서

변수 전원 공급 상태 변경

UnityEvent< Inverse3, bool > PowerSupplyStatusChanged;

Inverse3 디바이스의 전원 공급 상태가 변경될 때마다 트리거됩니다.

참조: 전원

변수 ControlModeChanged

UnityEvent< Inverse3, ControlMode > ControlModeChanged;

디바이스의 제어 모드가 변경될 때 트리거되는 이벤트입니다.

이를 통해 제어 모드의 변경으로 특정 동작이나 구성이 트리거되는 반응형 프로그래밍 패턴을 사용할 수 있습니다.