오전중에 2가지 이슈를 해결했다.
첫번째는 초기화 문제.
프로젝트 세팅의 Oculus의 체크박스를 체크 해제하니 초기화가 다시 정상화됬다... 분명히 이전에는 Oculus와 OpenVR Loader를 동시에 체크해도 상관 없었는데. 뭐 원인은 정확하게 알 수 없지만 구글링 중에 OpenVR Loader를 체크하라는 내용을 보고 혹시나 해서 Oculus 체크 해제를 해보니 어쨋든 해결되었다.
두번째는 바인딩 문제.
SteamVR을 설치하면 SteamVR input binding UI를 쓸 수 있는데 그곳에서 SteamVR 인풋 형식에 맞게 셋팅을 해야한다.
아무튼 이것도 Live View를 통해 인풋이 들어오는것을 확인하였다.
그런데 문제는 해결되지 않았다.
NullReferenceException: Object reference not set to an instance of an object
Valve.VR.SteamVR_Action`2[SourceMap,SourceElement].GetActive (Valve.VR.SteamVR_Input_Sources inputSource)
이 계속 발생하는데 아직 왜그러는지를 모르것다.
휴.... 디버깅을 헛으로 보고있었다.
if(TrackpadAction.GetActive(MovementHand)) trackpad = TrackpadAction.GetAxis(MovementHand);
부분에서 Null이 발생하고 있었는데 public SteamVR_Action_Vector2 TrackpadAction; 으로 선언된 변수에 바인딩된 것이 없어서 발생하는 것이였다.
아무튼 이 부분을 해결하니 성공.
Oculus Quest2로 개발하더라도 SteamVR Input을 사용할 수 있게 되었다. 처음 셋팅 시작할때부터 글을 썻어야했는데 너무 복잡해서 안했다..
시간이 지나서 Valve에서 지원을 해주면 이렇게 따로 처리를 안해도 되는 부분이 될 수도 있다.
어쨋든 처음부터 셋팅할 일이 생기면 그때 따로 글로 정리하도록 하겠다.
참고한 블로그는 https://skarredghost.com/2020/09/25/steamvr-unity-xr-interaction-toolkit-input/ 여기. 해당글과 CrossPlatform 관련글 모두 참고했다.
아직도 햇갈리는 부분은 SteamVR Input과 XR Interaction Toolkit Input중 어떤것을 사용하는가이다. 추후 두개를 상황에 따라 맞춰 쓰며 어떤것을 쓸지 확인해보도록 하겠다.