대충 이런 느낌
우선 플레이어가 이동하는 방향 벡터를 한다.제 경우는 죠이 스틱 UI의 드래그 방향으로 가야 하니까 유니티의 이벤트 시스템을 이용하고 IDragHandler인터페이스를 상속한 뒤 터치 좌표를 받고 손에 넣었다

public void OnDrag(PointerEventData eventData){ Vector2 touchDir = eventData.position – _touchPosition;// 대거리이, 트치 인용하기, float moveDist= Mathf。min(touchDir.magnitude, _joystickRadius); _moveDir = touchDir.normalized; Vector2 newPosition = _touchPosition + _moveDir * moveDist;_movedist.position = newPosition; Managers。Game.MoveDir = _moveDir;}
위 코드를 보면 알 수 있듯이 _moveDir에 플레이어가 이동하는 방향을 포함하고 있습니다.

Vector2 touchDir = eventData.position – _touchPosition;_moveDir = touchDir.normalized; 벡터 2 touchDirect.normal;
(방향 벡터를 찾는 부분은 위의 두 열) 해당 플레이어 객체의 계층 구조는 다음과 같습니다.
1. 맨 위 객체인 Player 객체 2. 그 아래 Empty Game Object로 Indicator가 붙어 있고, 3. 그 아이로 FireSocket(방향을 표시하는 흰색 삼각형을 그리는 Sprite Render 컴포넌트)이 달려 있다.실질적으로 삼각형 스프라이트는 FireSocket에 있지만 Indicator의 z 로테이션을 돌려 플레이어의 방향을 나타내도록 한다.
void MovePlayer(){Vector3 dir=_moveDir*_speed*Time.deltaTime;transform.position+=dir;//디에게보내는 답전 if(_moveDir!=Vector2.zer){_indicator.ulerAngles=새 Vector3(0, 0, Mathf). atan2(-dir.x, dir.y)*180/Mathf.PI);}GetComponent<Rigidbody2D>(). velocity=Vector3를 가져옵니다. 제로;}

아크 탄젠트 함수를 이용하여 지표의 z로테이션치를 요구한다.Mathf.Atan이 아니라 Atan2의 이유?본래 Atan이라는 y/x값이 잘못되면 인수를 하나만 받은 메소드가 있는데, 여기에서는 0으로 나누면 오류가 나오는 것을 파악 못하고 x와 y값을 따로 받아 메소드 내부에서 0으로 깨지지 않게 처리하는 방법이다.즉 인수가 2개.그래서 Atan’2′.공간상의 2점 사이의 각도를 계산하기 때문에, 탄젠트 함수를 필요로 하지만, tan(r)=y/x이라고 하는 값을 이끌어 낼 수 있다.여기서 r를 청할 때, 탄젠트의 역함수(아크 탄젠트를 사용하여 tan^-1(y/x)=r이라는 값을 요구할 수 있다.이것으로 오브젝트들 간의 각도가 알아!유니티가 제공하는 Atan2의 형태Mathf.Atan2 (floaty, floatx);두 변수(x,y)를 입력으로 받아 해당 각도를 출력한다.그러나 Unity의 아크탄젠트 함수는 리턴 값이 라디안이다.라디안이란?호를이용한각도표기방법.호도법.위키백과: 라지안 https://ko.wikipedia.org/wiki/%EB%9D%BC%EB%94%94%EC%95%88호의 길이는 중심각에 비례하므로 다음과 같은 비례식을 만들 수 있다.360° : 2πr=a° : r//호도법에서는 π가 180즉, ‘a°’라고 하는 이 각도는 180/π라고 하는 정수치를 갖게 되는데, 이 값을 1 라디안이라고 한다.이것에 의해, 다음과 같은 식을 만들어 낼 수 있다.1래디안=180°/°, 1래디안=180°/°/°이 식을 통해 우리는 호도법으로 계산한 값과 60분법으로 계산한 값을 자유자재로 바꿀 수 있다.위의 경우 삼각형이 위를 향하고 있기 때문에 -x값을 넣는 유니티 에디터에서 indicator의 z 로테이션 값을 바꾸면 음일 때 오른쪽으로 도는 것을 확인할 수 있다 [참고자료] https://ko.wikipedia.org/wiki/%EB%9D%BC%EB%94%94%EC%95%88라디 앤-위키 피디아, 우리 모두의 백과 사전 라디 앤 83개국어 문서 토론 독해 편집 역사 표시 도구 백과, 우리 모두의 백과 사전.라디 앤(영어:radian)또는 호두(호로)는 각 크기를 재 SI유도 단위이다.기호는 rad또는 c이며, 이것은 종종 생략된다.한 모퉁이 라디안 값은 같은 크기 단위 엔 중심각이 대한 호의 길이와 같다.라디안은 약 57.3도이다정의[편집]평면상의 뿔이 주어졌다고 한다.이 모퉁이의 정점을 중심으로 원을 취하다.이 원의 반지름을r>0이라고 하며, 이 엔화로 주어진 뿔이 대한 호의…ko.wikipedia.orghttps://velog.io/@sonhoshi/7.-Mathf.Atan2%EC%97%90%EB%8C%80%ED95%B4%EC%8C%EC%84%B3%EC%9E90%907. 7. Mathf. Atan2에 대해 알아보자.Unity가 제공하는 static class, Mathf가 제공하는 static method Atan 2를 설명한다.velog.io알아두면 쓸모가 많을 것 같아 정리함 특히 위의 글은 감동스러울 정도로 정리를 잘해주셔서… 보고 많이 배웠다.