저번에 배운 인풋 시스템을 이용해 VR의 각종 버튼을 누르면 이벤트가 호출하도록 하자.
예를 들어 메뉴 버튼을 누르면 환경설정 버튼을 누르고 싶다면 어떻게 해야할까?
먼저 메뉴 버튼에 관련된 action을 만들어 보자.
기존의 XRI Default Input Actions를 열어보자.

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



그러고 저장하면 새로 생긴다.
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(); //비활성화
}
