default 액션에 없는 menu 버튼을 추가해보자
Actions 에 MenuButton 이라는 액션을 하나 만든다.
타입은 boolean
오른쪽아래 Open binding UI 를 누르면 현재 실행 중인 SteamVR 에 활성화된 장치가 표시된다.
이중에 컨트롤러를 선택 하면 아래 화면이 표시된다.
메뉴 버튼의 + 아이콘을 선택해 버튼을 추가한다.
아래처럼 버튼이 추가되고, click 시 연결할 액션을 선택하기 위해 none 을 선택한다.
등록했던 액션명이 보인다. 선택~
메뉴 버튼에 해당 액션이 연결되었다.
하단 메인메뉴 중 Input Debugger에서 신규로 등록된 항목들이 표시됨과 각 버튼 테스트가 가능.
using Valve.VR;
public class MenuInput : MonoBehaviour
{
// 해당 액션을 변수로 지정하고, 기본값은 default 의 MenuButton으로 지정
// 각 타입은 SteamVR/Input/ 폴더내 스크립트 참조.
[SteamVR_DefaultAction("MenuButton", "default")]
public SteamVR_Action_Boolean menuAction;
// 트랙패드 같이 벡터값이 필요한 경우
[StreamVR_DefaultAction("TouchPadTouch","default")]
public SteamVR_Action_Vector2 touchPadAction;
// Update is called once per frame
void Update ()
{
bool menuFlag = menuAction.GetStateDown(SteamVR_Input_Sources.Any);
if (menuFlag)
{
Debug.Log("menu button");
}
// 트랙패드
Vector2 touchValue = touchPadAction.GetAxis( StreamVR_Input_Sources.Any );
// 별도로 변수를 사용하지 않고 아래 처럼 직접 접근해서 얻어 올수도 있다.
if (SteamVR_Input._default.inActions.MenuButton.GetStateDown(SteamVR_Input_Sources.LeftHand))
{
Debug.Log("menu button");
}
}
}
액션셋을 사용하는 경우 사용할 액션셋을 미리 로드해 주어야 한다.
SteamVR/Input/SteamVR_ActivateActionSetOnLoad.cs 스크립트를 제공해 주는데, 내용은 단순히 액션셋을 로드하고, 언로드 하는 내용이다.
'프로그래밍 > Unity' 카테고리의 다른 글
[Unity] 테셀레이션 (0) | 2019.04.05 |
---|---|
[Unity] 인스펙터 변수 이름 변경 (0) | 2018.11.13 |
[Unity] Post Process Stack v2 (0) | 2018.10.31 |
[Unity] AR Foundation Package (0) | 2018.09.20 |
[Unity] 유니티용 DLL (0) | 2018.09.18 |
[Unity] VR 환경 끄거나 켜기 (0) | 2018.09.14 |
[Unity] AssetDatabase (0) | 2018.09.12 |
[Unity] AssetBundle (0) | 2018.08.24 |
[unity3d] 서피스 쉐이더 정리 (1) | 2018.06.26 |
[Unity] Mesh 생성 및 변경 (0) | 2011.06.24 |