산대특/VRAR

[VR]총 잡기 - HandGun Grab

꽂무남 2024. 4. 18. 16:40

 

 

 

실행 후 1, 2번을 한후 나와서 3번 4번과정

이렇게 에셋이 생성된다.

Max의 옵션을 Locked에서 Constrained로 변경한후 관절을 변경 가능

 

 

 

손의 잔상을 없애기 위해 Hand Grab Interactable 을 비활성화 or 삭제한다.

 

이렇게 되니 손가락이 움직이면 복사가 되었다 알고보니 이 옵션을 꺼주어야 한다.

 

원하는 관절을 고정및 변경 시킬 수 있다.

 

이번엔 컨트롤러에도 설정 할 것이다.

 

 

이제 콘솔에 총을 잡으면 출력이 되도록 할것이다.

 

using Oculus.Interaction;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HandGun : MonoBehaviour
{

    [SerializeField] private InteractableUnityEventWrapper wrapper;
    private bool isFire = false;

    void Start()
    {
        wrapper.WhenSelect.AddListener(() =>
        {
            Debug.Log("총을 잡았습니다.");
            isFire = true;
        });
        wrapper.WhenUnselect.AddListener(() =>
        {
            Debug.Log("총을 놓았습니다.");
            isFire = false;
        });

    }

    void Update()
    {
        var indexTriggerVal = OVRInput.Get(OVRInput.Axis1D.SecondaryIndexTrigger);

        //인덱스 트리거는 0~1 즉 강도조절
        if (indexTriggerVal > 0.5f)
        {
            isFire = true;
            Debug.Log("발사");
        }
        else if (indexTriggerVal == 0)
        {
            if (isFire)
            {
                //초기화
                isFire = false;

            }
        }

    }
}

 

인덱스트리거(검지를) 누르면 발사 또 한 출력된다.