Haply::Inverse::Unity::Inverse3
장치 데이터 및 상태 업데이트를 관리하는 Inverse3 장치 컨트롤러를 나타냅니다. 더 보기...
Haply.Inverse.Unity.DeviceBehaviour, MonoBehaviour에서 상속합니다.
공개 이벤트
이름 | |
---|---|
디바이스 델리게이트 | 디바이스 상태 변경( ) 각 햅틱 프레임에서 트리거되는 이벤트입니다. |
Action< Inverse3 > | OrientationChangedAsync() Inverse3 디바이스의 본체 방향이 변경될 때마다 트리거됩니다. |
공공 기능
이름 | |
---|---|
위임 무효 | DeviceDelegate(Inverse3 inverse3) Inverse3 디바이스의 Inverse3.DeviceStateChanged 이벤트를 처리하는 메서드를 나타냅니다. |
void | 요청전원공급상태( ) 현재 전원 공급 상태(전원 공급 중)에 대한 업데이트를 요청하고 완료되면 PowerSupplyStatusChanged 이벤트를 트리거합니다. |
void | RequestOrientation( ) Inverse3 본문 오리엔테이션 업데이트를 요청하고 완료 시 오리엔테이션 변경 동기화 이벤트를 트리거합니다. |
void | 커서 설정 로컬 힘(Vector3 힘) 장치의 로컬 공간에서 커서에 가해지는 힘을 x, y, z 축을 따라 뉴턴(N) 단위로 설정합니다. |
void | 커서 설정 로컬 힘(float x, float y, float z) |
void | 커서 설정 힘(벡터3 힘에서) 커서에 가해지는 힘을 월드 스페이스에서 뉴턴(N) 단위로 설정합니다. |
void | CursorSetForce(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) 단위로 설정합니다. |
void | JointsSetTorques(float t0, float t1, float t2) |
void | 조인트 설정 토크(벡터3 각도) |
void | JointsSetTorque(float x, float y, float z) |
void | 조인트 설정 각도(조인트3 각도) Inverse3 장치의 각 조인트에 대해 원하는 조인트 각도를 도(°)로 설정합니다. |
void | JointsSetAngles(float 알파0, float 알파1, float 알파2) |
void | 조인트 세트 각도(벡터3 각도) |
bool | 릴리스( 커서에 대한 모든 힘과 위치 제어를 초기화하려고 시도합니다. |
bool | TryResetForce() |
Vector3 | 트랜스폼 포인트(벡터3 위치) 캐시된 로컬투월드매트릭스를 사용하여 장치 또는 커서의 로컬 공간에서 월드 공간으로 위치를 변환합니다. |
Vector3 | TransformVector(벡터3 벡터) 캐시된 로컬투월드매트릭스를 사용하여 디바이스 또는 커서의 로컬 공간에서 월드 공간으로 벡터를 변환합니다. |
Vector3 | 역변환점(벡터3 위치) 캐시된 월드투로컬매트릭스를 사용하여 월드 스페이스에서 장치 또는 커서의 로컬 스페이스로 위치를 다시 변환합니다. |
Vector3 | 역변환 벡터(벡터3 벡터) 캐시된 월드투로컬매트릭스를 사용하여 벡터를 월드 스페이스에서 장치 또는 커서의 로컬 스페이스로 다시 변환합니다. |
문자열 재정의 | ToString( ) 객체의 이름, 클래스 유형, 디바이스 ID, 선택된 손동작을 포함하여 사람이 읽을 수 있는 설명을 제공하는 객체의 문자열 표현을 반환합니다. |
보호되는 기능
이름 | |
---|---|
오버라이드 무효 | InvokeReadyEvent() |
가상 재정의 무효화 | Setup( 이 메서드는 _performSetup 플래그가 매 프레임마다 호출하기에는 너무 무거운 계산을 처리하도록 설정되면 자동으로 호출됩니다. 이 메서드는 기본 호출을 유지하도록 주의를 기울여 재정의할 수 있습니다. SetSetupToPerform을 사용하여 설정 호출을 트리거합니다. |
가상 재정의 무효화 | 고정 업데이트() |
공용 속성
이름 | |
---|---|
재정의 장치 유형 | DeviceType 디바이스 유형을 가져오는데, 항상 이 컨트롤러에 대해 DeviceType.Inverse3을 반환합니다. |
커서 동작 재정의 | 커서 |
Inverse3Body | Body 게임 오브젝트가 자동으로 역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 디바이스의 현재 방향을 가져옵니다. |
float | 작업 공간 반경 장치의 로컬 공간에서 작업 공간의 대략적인 반경(미터(m))입니다. |
float | 워크스페이스 스케일 반경 월드 스페이스에서 워크스페이스의 대략적인 반경입니다. |
Vector3 | 작업 공간 중심 왼쪽 왼손잡이 디바이스의 작업 공간 중심 로컬 좌표입니다. |
Vector3 | 작업 공간 중심 오른쪽 HandednessType.Right-handed 장치의 작업 공간 중심 로컬 좌표입니다. |
Vector3 | 워크스페이스 중심 로컬 위치 Handedness 값에 따른 워크스페이스 중심 로컬 위치입니다. |
Vector3 | 워크스페이스 중심 위치 핸드드니스 값에 따른 워크스페이스 중심 월드 위치입니다. |
Vector3 | 워크스페이스센터 |
제어 모드 | ControlMode 디바이스의 현재 제어 모드를 가져옵니다. |
Vector3 | ForceOutput 커서 설정 힘 또는 커서 설정 로컬 힘 메서드가 장치에 보낸 마지막 힘입니다. |
Vector3 | PositionOutput 커서 설정 위치 또는 커서 설정 로컬 위치 메서드가 디바이스로 전송한 마지막 위치입니다. |
조인트3 | 조인트토크출력 조인트세트토크 메서드가 장치로 전송한 마지막 토크입니다. |
조인트3 | 조인트 각도 출력 조인트셋각 메서드가 장치로 전송한 마지막 각도입니다. |
bool | 공간 변환 업데이트 활성화 공간 변환 행렬의 업데이트가 활성화되었는지 여부를 나타내는 값을 가져오거나 설정합니다. |
매트릭스4x4 | 로컬 투 월드 매트릭스 디바이스 또는 커서 공간을 월드 공간으로 변환하는 매트릭스입니다. |
매트릭스4x4 | 월드투로컬매트릭스 월드 공간에서 디바이스 또는 커서 공간으로 다시 변환하는 매트릭스입니다. |
보호된 속성
이름 | |
---|---|
BaseCoordinateConverter 재정의 | CoordinateConverter |
변환 | 스페이스 트랜스폼 레퍼런스 로컬 투 월드 매트릭스 및 월드 투 로컬 매트릭스 설정에 사용되는 레퍼런스 트랜스폼입니다. |
공개 속성
이름 | |
---|---|
UnityEvent< Inverse3 > | Ready 커서 및 본체와 함께 Inverse3 디바이스가 성공적으로 초기화되어 사용할 준비가 되었을 때 트리거되는 이벤트입니다. |
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 이전 상태) 장치의 연결 상태 변경 처리를 위한 델리게이트입니다. |
void | SetSetupToPerform( ) 다음 프레임에서 설정을 수행하도록 지정합니다. |
Haply.Inverse.Unity.DeviceBehaviour에서 상속된 보호 함수
이름 | |
---|---|
가상 무효 | Awake() |
void | OnEnable() |
void | OnDisable() |
void | OnDestroy() |
Haply.Inverse.Unity.DeviceBehaviour에서 상속된 공용 속성
이름 | |
---|---|
int | SelectedDeviceId |
uint | DeviceId 디바이스 ID를 가져옵니다. |
bool | IsReady 장치를 사용할 준비가 되었는지 여부를 나타냅니다. |
장치 연결 상태 | 연결 상태 디바이스의 현재 연결 상태를 가져오거나 설정합니다. |
bool | IsConnected 디바이스가 연결되었는지 여부를 가져옵니다. |
bool | IsOpened 디바이스가 열려 있는지 여부를 가져옵니다. |
Haply.Inverse.Unity.DeviceBehaviour에서 상속된 보호된 속성
이름 | |
---|---|
bool | IsCursorSet 커서가 설정되었는지 여부를 나타냅니다. |
Haply.Inverse.Unity.DeviceBehaviour에서 상속된 공용 속성
이름 | |
---|---|
const int | ANY_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입니다.
- 서비스에서 예기치 않은 오류가 수신된 경우 발생하는 예외입니다.
이 메서드는 처리되지 않은 힘 벡터를 로컬 공간의 장치로 직접 전송하며, CursorLocalPosition 및 CursorLocalVelocity와 함께만 사용해야 합니다. 힘 계산이 월드 스페이스 좌표(CursorPosition 및 CursorVelocity)를 기반으로 하거나 변형된(위치, 회전 또는 스케일) 컨트롤러를 포함하는 경우, 대신 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
. 만약DeviceId
는ANY_ID
의 값은SelectedDeviceId
가 사용됩니다. - "핸드드니스"는 선택한 핸드드니스이며, ".왼쪽", ".오른쪽"으로 표시되거나 다음과 같은 경우 생략됩니다.
SelectedHandedness
는Nil
.
이 방법은 객체에 대한 간결하고 유익한 설명을 제공하여 디버깅 및 로깅에 도움이 됩니다.
보호된 기능 문서
함수 InvokeReadyEvent
override void InvokeReadyEvent()
함수 설정
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
이 속성은 실시간으로 새로 고쳐지지 않습니다. 요청방향을 사용하여 수동으로 업데이트하거나 디바이스맵퍼를 통해 자동으로 업데이트할 수 있습니다.
속성 작업 공간 반경
float WorkspaceRadius;
장치의 로컬 공간에서 작업 공간의 대략적인 반경(미터(m))입니다.
속성 작업 공간 확장 반경
float WorkspaceScaledRadius;
월드 스페이스에서 작업 공간의 대략적인 반경입니다.
속성 작업 공간 중앙 왼쪽
static Vector3 WorkspaceCenterLeft = new(-0.05f, 0.15f, -0.12f);
왼손잡이 기기에 대한 작업 공간 중심 로컬 좌표입니다.
참조: 커서 설정 로컬 위치, 선택된 손 방향
이 로컬 위치에 커서를 설정하면 머리가 평행하고 팔이 몸과 수직이 되는 위치로 디바이스가 이동합니다.
속성 작업 공간 중앙 오른쪽
static Vector3 WorkspaceCenterRight = new(0.05f, 0.15f, -0.12f);
HandednessType.Right-handed 장치의 작업 공간 중심 로컬 좌표입니다.
참조: 커서 설정 로컬 위치, 선택된 손 방향
이 로컬 위치에 커서를 설정하면 머리가 평행하고 팔이 몸과 수직이 되는 위치로 디바이스가 이동합니다.
속성 워크스페이스센터로컬위치
Vector3 WorkspaceCenterLocalPosition;
핸드드니스 값에 따른 작업 공간 중심 로컬 위치.
참조: 커서 설정 로컬 위치, 선택된 손 방향
Handedness가 HandednessType.Nil인 경우 WorkspaceCenterRight를 반환합니다.
이 로컬 위치에 커서를 설정하면 머리가 평행하고 팔이 몸과 수직이 되는 위치로 디바이스가 이동합니다.
속성 작업 공간 중심 위치
Vector3 WorkspaceCenterPosition;
핸드드니스 값에 따른 워크스페이스 중심 월드 위치입니다.
참조: 커서 설정 위치, 셀렉티드 핸드드니스
Handedness가 HandednessType.Nil인 경우 WorkspaceCenterRight를 반환합니다.
이 위치에 커서를 설정하면 머리가 평행하고 팔이 몸통과 수직이 되는 위치로 디바이스가 이동합니다.
속성 워크스페이스센터
Vector3 WorkspaceCenter;
속성 ControlMode
ControlMode ControlMode;
디바이스의 현재 제어 모드를 가져옵니다.
제어 모드는 장치가 입력 명령에 응답하고 커서 위치 또는 조인트 토크와 같은 출력을 관리하는 방법을 지정합니다.
속성 ForceOutput
Vector3 ForceOutput;
커서 설정 힘 또는 커서 설정 로컬 힘 메서드가 장치에 보낸 마지막 힘입니다.
속성 PositionOutput
Vector3 PositionOutput;
커서 설정 위치 또는 커서 설정 로컬 위치 메서드가 장치에 전송한 마지막 위치입니다.
속성 JointsTorqueOutput
Joint3 JointsTorqueOutput;
조인트셋토크 메서드가 장치에 전송한 마지막 토크입니다.
속성 JointsAnglesOutput
Joint3 JointsAnglesOutput;
조인트셋각 메서드가 장치로 전송한 마지막 각도입니다.
속성 SpaceTransformationUpdateEnabled
bool SpaceTransformationUpdateEnabled = true;
공간 변환 행렬의 업데이트가 활성화되어 있는지 여부를 나타내는 값을 가져오거나 설정합니다.
true로 설정하면 UpdateSpaceTransformationCache 메서드가 호출되어 현재 SpaceTransformationReference를 기반으로 LocalToWorldMatrix 및 WorldToLocalMatrix를 업데이트합니다. 이는 일반적으로 월드에서 디바이스의 위치와 방향에 관한 공간 계산이 정확하고 최신 상태인지 확인하는 데 사용됩니다.
속성 로컬투월드매트릭스
Matrix4x4 LocalToWorldMatrix;
디바이스 또는 커서 공간을 월드 공간으로 변환하는 매트릭스입니다.
참조: 공간 변환 참조, 트랜스폼 포인트, 트랜스폼 벡터
행렬은 SpaceTransformationReference에 따라 달라집니다.
이 매트릭스는 디바이스 또는 커서의 로컬 공간에서 월드 공간으로 위치와 속도를 변환하는 데 사용할 수 있습니다. 이를 통해 트랜스폼 컴포넌트의 데이터에 직접 액세스할 수 없는 환경에서도 햅틱 관련 계산을 정확하게 수행할 수 있습니다.
속성 WorldToLocalMatrix
Matrix4x4 WorldToLocalMatrix;
월드 공간에서 디바이스 또는 커서 공간으로 다시 변환하는 매트릭스입니다.
행렬은 SpaceTransformationReference에 따라 달라집니다.
이 매트릭스는 계산된 힘을 월드 공간에서 디바이스 또는 커서의 로컬 공간으로 변환하는 데 사용할 수 있습니다. 이를 통해 트랜스폼 컴포넌트의 데이터에 직접 액세스할 수 없는 환경에서도 햅틱 관련 계산을 정확하게 수행할 수 있습니다.
보호 대상 자산 문서
속성 코디네이트 컨버터
override BaseCoordinateConverter CoordinateConverter;
속성 공간 변환 참조
Transform SpaceTransformationReference;
로컬투월드매트릭스 및 월드투로컬매트릭스 설정에 사용되는 레퍼런스 트랜스폼입니다.
커서가 설정되어 있으면 해당 부모가 사용됩니다. 그렇지 않으면 현재 디바이스 트랜스폼이 사용됩니다.
공개 속성 문서
변수 준비
UnityEvent< Inverse3 > Ready;
커서 및 본체와 함께 Inverse3 디바이스가 성공적으로 초기화되어 사용할 준비가 되면 트리거되는 이벤트입니다.
SpaceTransformationUpdateEnabled가 활성화되어 있으면 첫 번째 업데이트 후에 이 이벤트가 트리거됩니다.
변수 전원 공급 상태 변경
UnityEvent< Inverse3, bool > PowerSupplyStatusChanged;
Inverse3 디바이스의 전원 공급 상태가 변경될 때마다 트리거됩니다.
참조: 전원
변수 ControlModeChanged
UnityEvent< Inverse3, ControlMode > ControlModeChanged;
디바이스의 제어 모드가 변경될 때 트리거되는 이벤트입니다.
이를 통해 제어 모드의 변경으로 특정 동작이나 구성이 트리거되는 반응형 프로그래밍 패턴을 사용할 수 있습니다.