[Unity] XR - 인풋

gest·2026년 4월 24일

unity

목록 보기
8/9
post-thumbnail

저번에 배운 인풋 시스템을 이용해 VR의 각종 버튼을 누르면 이벤트가 호출하도록 하자.

메뉴

예를 들어 메뉴 버튼을 누르면 환경설정 버튼을 누르고 싶다면 어떻게 해야할까?

인풋 리스트 만들기

먼저 메뉴 버튼에 관련된 action을 만들어 보자.
기존의 XRI Default Input Actions를 열어보자.

이후 쭉 가서 interaction에 들어가서 menu left controller까지 추적하자.


  • 참고로 menu 직접 검색하면 매우 많은 결과가 나온다. 복잡한 거 싫다면 직접 menu를 찾자

그러고 저장하면 새로 생긴다.

코드

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

public class SettingsController : MonoBehaviour
{
    [Header("UI 패널")]
    [SerializeField] private GameObject settingsPanel;

    [Header("인풋 액션 연결")]
    
    //Input Action Asset의 하위 버전 : XRI : UI / Click 이런거
    [SerializeField] private InputActionReference toggleMenuAction;

    private void OnEnable()
    {
        toggleMenuAction.action.Enable();
        toggleMenuAction.action.started += TogglePanel;
        
        //canceled
        //performed
        //started
    }

    private void OnDisable()
    {
        toggleMenuAction.action.started -= TogglePanel;
        toggleMenuAction.action.Disable();
    }

    private void TogglePanel(InputAction.CallbackContext context)
    {
        // 패널 껐다 켜기
        settingsPanel.SetActive(!settingsPanel.activeSelf);

        if (settingsPanel.activeSelf)
        {
            Debug.Log("환경설정 창 켜짐!");
        }
    }
}

핵심

    private void OnEnable()
    {
        toggleMenuAction.action.Enable(); //활성화 
        toggleMenuAction.action.started += TogglePanel; //함수 넣고
        //started
    }

    private void OnDisable()
    {
        toggleMenuAction.action.started -= TogglePanel; //함수 빼고
        toggleMenuAction.action.Disable(); //비활성화
    }

0개의 댓글