VR SpaceShooter (리소스 추가/그립버튼)

VR/XR Interaction Toolkit 2023. 8. 16. 01:12
반응형

에셋을 추가 하면 분홍색이 보이면 다음과 같이 Edit의 Rendering메뉴에서 Built-in 메터리얼을 URP로 변환 해주면 된다 

새 씬을 만들고 

저장 합니다.

빌드 셋팅을 열고 현재 씬을 추가 합니다.

Main Camera를 제거 하고 XR Origin(Action based)을 추가 합니다.

tracking origin mode를 Floor로 변경 합니다.

 

RightHand Controller를 선택 하고 XR Ray Interactor, Line Renderer, XR Interactor Line Visual컴포넌트를 제거 합니다.

XR Direct Interactor 컴포넌트를 추가 하고 Sphere Collider를 추가 한 뒤 Is Trigger를 체크 하고 Radius를 0.1로 설정 합니다.

 

같은 방법으로 LeftHand Controller로 설정 합니다.

Left/Right Hand프리팹을 각각 Left/Right HandController의 자식으로 넣어 줍니다.

실행후 그립 버튼을 눌러 정상 동작 하는지 확인 합니다.

 

using UnityEngine;
using UnityEngine.InputSystem;

[RequireComponent(typeof(Animator))]
public class HandAnimation : MonoBehaviour
{
    [SerializeField] private InputActionReference gripAction;
    [SerializeField] private InputActionReference pinchAction;
    private Animator animator;

    private void OnEnable()
    {
        //grip
        gripAction.action.performed += Gripping;
        gripAction.action.canceled += GripRelease;

        //pinch
        pinchAction.action.performed += Pinching;
        pinchAction.action.canceled += PinchRelease;
    }

    private void Awake() => animator = GetComponent<Animator>();

    private void Gripping(InputAction.CallbackContext obj) => animator.SetFloat("Grip", obj.ReadValue<float>());

    private void GripRelease(InputAction.CallbackContext obj) => animator.SetFloat("Grip", 0f);

    private void Pinching(InputAction.CallbackContext obj) => animator.SetFloat("Pinch", obj.ReadValue<float>());

    private void PinchRelease(InputAction.CallbackContext obj) => animator.SetFloat("Pinch", 0f);

}

 

https://docs.unity3d.com/Packages/com.unity.inputsystem@0.1/api/UnityEngine.Experimental.Input.InputActionReference.html

 

Class InputActionReference | Package Manager UI website

Class InputActionReference Inheritance System.Object InputActionReference Assembly : cs.temp.dll.dll Syntax public class InputActionReference : ScriptableObject Properties action The action that the reference resolves to. Declaration public InputAction act

docs.unity3d.com

LeftHandGun, RightHandGun을 씬에 놓고 

XR Grab Interactable컴포넌트를 부착 후 

Colliders속성에 Handle을 할당 합니다.

빌드후 결과를 확인 합니다.

반응형

'VR > XR Interaction Toolkit' 카테고리의 다른 글

Hand Model 넣기  (0) 2023.12.26
XROrigin  (0) 2023.12.26
XR-Interaction-Toolkit-Examples  (0) 2023.12.26
XR Interaction Toolkit 환경설정  (0) 2023.12.26
VR SpaceShooter (셋팅)  (0) 2023.08.16
: