PS5 컨트롤러를 C to USB로 PC에 연결
(무선으로 할경우 가운데 PS검정 버튼과 좌측 상단에 방향키 위 작은 버튼을 3초간 누르고 있으면 파란불 깜빡깜빡 거리면서 블루투스 연결 가능 상태가됌)
*테스트 진행한 유니티 버전은 2021.3.4f1
1인칭 플레이어를 위 컨트롤러로 맵핑 해보자.
https://assetstore.unity.com/packages/tools/input-management/mini-first-person-controller-174710
1인칭 플레이어 에셋을 다운로드 받아서 프로젝트에 임포트 해주고
First Person Controller Minimal을 씬에 넣고 플레이 해보면
키보드 wasd,방향키 에 따라서 잘 움직이고
마우스에 따라서 플레이어 시점이 X,Y축으로잘 움직인다.
FirstPersonMovement.cs 스크립트를 열어보면
// Get targetVelocity from input.
Vector2 targetVelocity =new Vector2( Input.GetAxis("Horizontal") * targetMovingSpeed, Input.GetAxis("Vertical") * targetMovingSpeed);
Input.GetAxis를 통해
"Horizontal"과 "Vertical"값을 가져와서 플레이어가 움직인다.
FirstPersonLook.cs 스크립트를 열어보면
Vector2 mouseDelta = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y"));
Input.GetAxisRaw를 통해
"Mouse X"와 "Mouse Y"값을 가져와서 플레이어의 시야가 움직인다.
"Horizontal", "Vertical", "Mouse X", "Mouse Y"값은 어디서 어떻게 설정이 되어 있는가
Edit - Project Setting - Input manager로 간다
그러면 기본 18개의 값이 있다
여기에 "Horizontal", "Vertical", "Mouse X", "Mouse Y" 이 있다.
맨위에 있는 Horizontal과 Vertical 항목을 펼쳐보면
Horizontal에 left,right,a,d키가 지정되어 있고 Type은 'Key or Mouse Button'으로 지정 되어 있다
키보드 화살표 좌우, 키보드 'a' 'd'키를 누르면 Horizontal값에 입력을 주는 셋팅이다.
마찬가지로,
Vertical에 down,up,s,w키가 지정되어 있고 Type은 'Key or Mouse Button'으로 지정 되어 있다
키보드 화살표 상하, 키보드 'w' 's'키를 누르면 Horizontal값에 입력을 주는 셋팅이다.
밑에도 똑같이 'Horizontal'과 'Vertical' 항목이 하나더 있는데 셋팅은 조금 다르다
Type이 Joystick Axis로 되어 있고
Axis는 각각 'X axis'와 'Y axis'로 되어있다.
그래서 컨트롤러의 좌측 스틱을 움직여보면 플레이어가 상하좌우 잘 움직인다.
(X axis와 Y axis는 좌측 스틱에 해당되는 맵핑값이다)
*만약 Horizontal과 Vertical항목이 없거나 위와 다르다면 항목을 추가하든지 위처럼 만들어주면 작동함
그러면 이제 "Mouse X"와 "Mouse Y'값을 컨트롤러 우측 스틱을 사용해서 맵핑을 해보자.
'Mouse X', 'Mouse Y'항목을 열어보면
Type이 Mouse Movement로 되어있다. 그래서 마우스로 플레이어의 시야 제어가 가능했다.
이제 이거를 컨트롤러 우측 스틱으로 변경해보자.
그러려면 PS5 컨트롤러 듀얼센스의 키값을 알아야한다.
키값이 정리되어 있는 사이트(정확한지는 잘 모르겠다)
여기서 확인해보면
좌측 스틱은 "X Axis","Y Axis" 키값으로 지정되어 있고,
우측 스틱은 "3rd Axis", "6th Axis"키값으로 지정되어 있으며
각각 ((-1) ~ 1) 혹은 ( 1~ (-1)) 의 범위를 가진다
이제 "Mouse X", "Mouse Y"의 셋팅 값을 바꿔보자
Type은 Joystick Axis로 변경하고
각각 '3rd axis', '6th axis'로 설정한다
"Mouse Y"의 경우 시야가 반대로 움직여서 Invert를 체크했음
정상적으로 셋팅이 됐으면
좌측 스틱으로 플레이어가 이동하고
우측 스틱으로 플레이어의 시야를 움직일수 있다.
끝
'툴 > 유니티' 카테고리의 다른 글
OSC 한글 문자열(string) 전송, 텍스트 인코딩(Unicode,Base64) (0) | 2022.12.03 |
---|---|
유니티 + 립모션 (Unity + LeapMotion) 연결 및 위치값 받기 (1) | 2022.09.23 |
Unity + Azure Kinect 바디트래킹 개발용 자료 정리 (0) | 2022.09.13 |
Unity HDRP VFXgraph Green Tint Issue(HDRP 녹색, 초록색 문제) (0) | 2022.04.25 |
HDRP&URP Chromakey shader 크로마키 쉐이더 (2) | 2022.03.15 |