Unity/유니티VR

[유니티 VR] 컨트롤러 인터렉션

도이(doi) 2021. 10. 5. 17:57
728x90

컨트롤러 Haptic 기능 넣기 

XR controller 스크립트를 보게 되면 아래와 같은 함수가 보인다.

public override bool SendHapticImpulse(float amplitude, float duration)
        {
            if (inputDevice.TryGetHapticCapabilities(out var capabilities) &&
                capabilities.supportsImpulse)
            {
                return inputDevice.SendHapticImpulse(0u, amplitude, duration);
            }
            return false;
        }

이 함수를 호출하게 되면 컨트롤러에 Haptic이 발생한다.

호출하는 코드는 아래와 같다. 파라미터 값이 현재는 0.7f, 2f로 설정 되어 있는데 앞에 숫자는 진동의 진폭을 설정한다. 즉, 진동의 강도를 설정할 수 있고 뒤에 있는 값은 진동의 지속시간을 정할 수 있다. 

private XRController xr;
 
void Start()
{
  xr = (XRController) GameObject.FindObjectOfType(typeof(XRController));
}
 
void ActivateHaptic()
{
  xr.SendHapticImpulse(0.7f, 2f);
}

UI 컨트롤러 인터렉션

https://www.youtube.com/watch?v=BZt74PVb7sM 

728x90
반응형