24b0d121e09c28a8699fe8b115ef046c65f22f46


월드좌표로 계산했는데도 이렇게 다른 방향 가리키는 경우는 코드에서 어디가 문제인거야?

    public Vector2 GetMouseWorldPosition()

    {

        Camera mainCamera = Camera.main;

        if (mainCamera == null)

        {

            Debug.LogError("메인 카메라를 찾을 수 없음. 태그 확인 바람");

            return Vector2.zero;

        }

        Vector2 mouseScreenPos2D = PlayerInputActions.Player.MousePosition.ReadValue<Vector2>();

        Vector3 mouseScreenPosition = new Vector3(mouseScreenPos2D.x, mouseScreenPos2D.y, 0);

        // 카메라 Z축에 따른 보정

        mouseScreenPosition.z = -mainCamera.transform.position.z;


        return mainCamera.ScreenToWorldPoint(mouseScreenPosition);

    }

====================================================================================

public class PlayerAimIndicator : MonoBehaviour

{

    [SerializeField] private Transform playerTransform;

    private Camera mainCam;


    private void Awake()

    {

        mainCam = Camera.main;

    }


    private void Update()

    {

        Vector2 mouseWorldPosition = InputManager.Inst!ance.GetMouseWorldPosition();


        // 플레이어 위치를 기준으로 방향을 계산

        Vector3 direction = ((Vector3)mouseWorldPosition - playerTransform.position).normalized;


        // 각도 계산하고 pivot오브젝트 회전

        float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;

        transform.rotation = Quaternion.Euler(0, 0, angle);


        // 디버깅용 선

        Debug.DrawLine(playerTransform.position, mouseWorldPosition, Color.cyan);

    }

}