-
Unity Oculus 컨트롤러 진동개발/Unity 2020. 1. 21. 16:49
https://developer.oculus.com/documentation/unity/unity-haptics/
static void OVRInput.SetControllerVibration ( float frequency, float amplitude, Controller controllerMask )
OVR Haptic 대신 OVR.Input 의 SetControllerVibration 함수를 사용해 컨트롤러 진동을 설정할 수 있다.
frequency와 amplitude는 각각 진동의 주파수와 진폭으로 0 - 1 사이의 float 타입 실수이고, controllerMask는 진동을 설정할 컨트롤러.
이 함수는 진동의 지속 시간을 설정할 수 없고, 2초가 지나면 진동은 자동으로 멈춘다.
Coroutine을 사용해 지속시간을 설정하고, OVRGrabber 클래스를 수정해 오브젝트를 놓을 때 진동을 일으키고 싶다면 OVRGrabber.GrabbableRelease 함수를 수정할 수 있다.
protected void GrabbableRelease(Vector3 linearVelocity, Vector3 angularVelocity) { // 지속시간을 추가한 Coroutine 사용 StartCoroutine(VibrateController(0.05f, 0.3f, 0.2f, m_controller)); m_grabbedObj.GrabEnd(linearVelocity, angularVelocity); if(m_parentHeldObject) m_grabbedObj.transform.parent = null; m_grabbedObj = null; } protected IEnumerator VibrateController(float waitTime, float frequenct, float amplitude, OVRInput.Controller controller) { OVRInput.SetControllerVibration(frequency, amplitude, controller); yield return new WaitForSeconds(waitTime); OVRInput.SetControllerVibration(0, 0, controller); }
'개발 > Unity' 카테고리의 다른 글
Unity Oculus Quest 최적화 (0) 2020.02.05 Unity 충돌 감지 시 효과음 재생 (0) 2020.01.31 Unity 라이트 프로브와 실시간 조명 (0) 2020.01.31 Unity SerializedObject target has been destroyed 오류 해결 (0) 2020.01.23 Unity/Oculus DistanceGrabber 물건 집어오는 동안 충돌 무시하게 하기 (0) 2020.01.17