본문 바로가기

Unity_C#/Unity

[Unity] Steam VR / Vive Input Utility 컨트롤러 진동 주는 법

반응형

* 덧글은 공개 덧글로 부탁드립니다. (개인정보가 담겨있다면 비밀 덧글로 :) )

 

 

Unity를 이용하여 Vive 기반의 VR 개발을 할 때, Steam VR 또는 Vive Input Utility(앞으로는 VIU라 하겠습니다.)를 사용할 수 있습니다. 작년에 콘텐츠를 만들 때에는 VIU를 사용했었는데, 올해엔 Steam VR 을 사용해보았는데요, 두 에셋을 이용했을 때 진동을 주는 방법에 대해 기록해보겠습니다.

 

 

1. STEAM VR

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Valve.VR;

public class Haptic : MonoBehaviour
{
	
    public SteamVR_Action_Vibration hapticAction;
    
    public PlayVibration()
    {
    	Pulse(1, 150, 75, SteamVR_Input_Sources.LeftHand);
        Pulse(1, 150, 75, SteamVR_Input_Sources.RightHand);
    }
    
    private void Pulse(float duration, float frequency, float amplitude, SteamVR_Input_Sources source)
    {
        hapticAction.Execute(0, duration, frequency, amplitude, source);
        Debug.Log("Pulse " + source.ToString());
    }
    
}

 

 

 

2. Vive Input Utility

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using HTC.UnityPlugin.Vive;

public class VibrationSample : MonoBehaviour
{
    public HandRole handRoleL = HandRole.LeftHand;
    public HandRole handRoleR = HandRole.RightHand;
    
    public void PlayVibe()
    {
    	 ViveInput.TriggerHapticVibrationEx<HandRole>(handRoleR, 1, 85, 1, 0);
         ViveInput.TriggerHapticVibrationEx<HandRole>(handRoleL, 1, 85, 1, 0);
    }
}

 

 

개인적으로는 VIU에서 사용한 방법이 좀더 자연스럽게 진동이 왔던 것 같습니다.

 

 

 

혹시 다른 좋은 방법을 찾으신 분들은 덧글로 공유해주시면 감사하겠습니다.

반응형