VR 게임 프로젝트 중 Haptic Interaction 기능 추가
문제:
xr controller (device based) 추가 하고
glaze 스크립트에
using UnityEngine.XR.Interaction.Toolkit;
하고 링크에 있는 코드들 넣어주면 동작함
근데 오른쪽만 동작함
[유니티 VR] 컨트롤러 인터렉션 (tistory.com)
문제 해결:
detect되는 컨트롤러를 명시해서 haptic 기능을 실행
+ 인터렉트 한 컨트롤러만 haptic이 반응하도록 설정
Glaze.cs
public XRBaseControllerInteractor leftController, rightController;
public HandDetector handDetector;
public grabbingHand hand;
void ActivateHaptic()
{
if (hand == grabbingHand.left)
{
leftController.SendHapticImpulse(0.3f, 0.5f);
}
else
{
rightController.SendHapticImpulse(0.3f, 0.5f);
}
}
public void GrabGlaze()
{
isGrab = true;
StartCoroutine(IUpdate());
// 잡고 있는 손이 어느 손인지 확인하는 스크립트
hand = handDetector.DetectHand();
}
public void DeActiveGrabGlaze()
{
isGrab = false;
hand = grabbingHand.none;
}
HandDetector.cs
using UnityEngine.XR.Interaction.Toolkit;
using DonutEnum;
public class HandDetector : XRGrabInteractable
{
public grabbingHand DetectHand()
{
if(selectingInteractor.name== "RightHand Controller")
{
// 잡고 있는 손이 오른손일 경우
return grabbingHand.right;
} else
{
// 잡고 있는 손이 오른손이 아닐 경우 == 왼손일 경우
return grabbingHand.left;
}
}
}
'Unity' 카테고리의 다른 글
[Unity] There are 2 event systems in the scene. Please ensure there is always exactly one event system in the scene (0) | 2022.01.12 |
---|---|
VR 개발 - XR interaction Toolkit (0) | 2022.01.12 |
오큘러스 - 유니티 연동 오류2 (0) | 2022.01.05 |
[플레이스토어 오류해결] api 버전 오류, Gradle build failed 오류 (0) | 2021.10.13 |
Oculus - Unity 연동 해결 (0) | 2021.10.08 |
댓글