유니티 공부
마우스 클릭과 뉴 인풋 시스템
스크립팅하는애님
2024. 6. 11. 01:52
이전 글에서 뉴 인풋 시스템을 사용하는 바람에 문제가 발생했었는데...

나는 여기서 입력방식을 'Both'가 아닌 'Input System Package (New)'를 선택했다.
그게 문제였는데 까먹지 않기 위해 여기에 적어 놓겠다.
작업 내용은 'A* Pathfinding Project pro'에서 마우스 클릭으로 클릭된 위치까지 캐릭터를 이동시는 것이었는데,
문제가 발생했다.

Ray ray = screenCam.ScreenPointToRay(Input.mousePosition);
이 명령인데, 화면을 마우스로 클릭하면 해당 위치의 정보를 화면기준으로 받아 오는 명령이다.
일반적으론 문제가 없는 명령이지만, 입력방식을 'Input System Package (New)'로 할 경우에는 에러가 발생한다.
즉 입력방식이 'Input Manager (Old)'나 'Both' 일경우만 사용이 가능한 명령인 것이다.
'Input.mousePosition' 명령이 문제 이기 때문에 수정을 해줘야 한다.
다음과 같이 수정하면 정상적으로 정보를 받아 온다.

Ray ray = screenCam.ScreenPointToRay(mousePos);
.
.
.
void MousePos(Vector2 value) {mousePos = value;}
void OnMousePos(InputValue value)
{
MousePos(value.Get<Vector2>());
}
5번째 라인 이후 함수들은 뉴 인풋 시스템에서 생성된 정보를 받아오는 역할을 한다.
잘 작동하는군.
