유니티 공부

마우스 클릭과 뉴 인풋 시스템

스크립팅하는애님 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번째 라인 이후 함수들은 뉴 인풋 시스템에서 생성된 정보를 받아오는 역할을 한다.

 

잘 작동하는군.