TIL
특정 대상 중심으로 원하는 방향에 오브젝트 생성 , 마우스 방향으로 오브젝트 생성
박민혁_kog
2023. 12. 19. 16:16
Vector2 player = transform.position;
Vector2 mouse = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 dir = (mouse - player).normalized * 1.5f;
float angle = Mathf.Atan2(mouse.y - player.y, mouse.x - player.x) * Mathf.Rad2Deg;
PhotonNetwork.Instantiate("AugmentList/A3206", transform.position + dir, Quaternion.Euler(new Vector3(0,0,angle-90)));
방향 구할때 angle처럼 mouse.y - player.y , x- x 해도 되지만 그위에 dir 처럼 바로 빼버려도 된다.
90도를 빼는 이유는 좌표평면 위에서 X축을 기준으로 시작하기 때문이다.
x축을 기준으로 몇 도 차이가 나는지 반환하기 때문에 마우스를 완전히 화살표의 오른쪽에 놓는다면,
angle은 0을 가르킨다.
하지만 우리 인간의 기준으로는 마우스가 화살표의 오른쪽에 있다면 화살표가 오른쪽으로 90도 회전해야 맞다.
이렇게 기준이 다르기 때문에 90도를 감산해줘야 정확한 각도로 회전하게 된다.