월드좌표로 계산했는데도 이렇게 다른 방향 가리키는 경우는 코드에서 어디가 문제인거야?
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);
}
}
이거 질문 그대로 gpt 한테 물어보자
저 코드를 제미나이가 추천해줌 ㅋㅋㅋㅋㅋㅋㅋㅋ 대충 어떤 원린지 알겠는데 그래서 더 문제야 내 눈에도 코드 잘 짜인 것 같은데 실제로 작동을 이상하게 하니 미치겠음 ㅠㅠ
해당 댓글은 삭제되었습니다.
오 진짜 ㄳㄳ