내일배움캠프 20일차

박나연·2025년 5월 2일

내배캠

목록 보기
20/69

개인과제 시작

오늘의 키워드 : 개인과제 시작

오늘 작업 트러블 슈팅 : 마우스 방향에 따른 스프라이트 반전이 동작하지 않음

플레이어는 정상적으로 움직이지만, 마우스 위치에 따라 스프라이트가 좌우 반전되지 않는 문제

<원인 1>: 잘못된 좌표 변환 메서드 사용

// 잘못된 예시
Vector2 mousePos  = input.Get<Vector2>();
Vector2 worldPos  = camera.WorldToScreenPoint(mousePos);

WorldToScreenPoint는 월드->스크린 변환용 메서드이다. 잘못 변환했기에 회전 로직이 먹히지 않았다.

<해결방법 1>

    void OnLook(InputValue input)
    {
        Vector2 mousePos = input.Get<Vector2>();
        Vector2 worldPos = (Vector2)camera.ScreenToWorldPoint(mousePos);
        lookDir = (worldPos - (Vector2)transform.position).normalized;
    }

원래 의도인 ScreenToWorldPoint로 수정해주었다.

<원인 2>:Update를 덮어쓰고 기능을 호출하지 않음
BaseControllerprotected virtual void Update()안에 Rotate(lookDir)가 있는데 PlayerController 에서 void Update()를 다시 선언만 해 기본 동작을 덮어쓰고 base.Update()를 호출하지 않았다.

<해결방법 2>

    protected override void Update()
    {
        base.Update();  //Rotate(lookDir) 실행
    }

base.Update()를 호출해 해결하였다.

마무리하며

자동완성 기능을 사용했더니 잘못 사용한 걸 눈치채지 못했다. 그리고 상속받아서 사용할때도 조심해야 할 것 같다. 다음엔 이런 실수가 없도록 처음부터 꼼꼼히 봐야겠다.

내일 할 일

내일은 개인일정으로 좀 바쁘긴 하지만 개인과제는 진짜로 해야하니 한시간이라도 꼭 작업을 하기! 나와의 약속!!!!

0개의 댓글