분류 전체보기 14

유니티 벡터를 이용한 방향 구하고 오브젝트 이동

타겟POS - 현재 POS를 하면 이동 거리 벡터가 구해지고 이것을 magnitude를 사용하면 거리가 숫자화 되고 normalized하면 방향이 되어 그 방향으로 오브젝트를 이동 시킬 수 있음 if ( fDist > Speed * Time.deltaTime) 을 사용해주지 않으면 타겟의 위치에서 흔들림 현상이 일어나는데 이는 속도와 프레임 때문에 정확한 위치에 도달할 수 없기 때문이다 이것을 방지하기 위해 거리가 속도*시간보다 작으면 멈추도록 한다.

유니티 정보 2021.07.23

유니티 3D 목표를 바라보며 회전

유니티에서 몬스터가 플레이어를 쳐다보게 하려고 하다가 Lerp, Slerp를 찾았고 활용을 해보았지만 두 명령어는 보간으로 쳐다보는 각도가 점점 좁아지면 속도가 느려진다 그래서 찾은 방법은 Quaternion.RotateTowards를 이용한 회전 방법이다 우선 목표Pos - 현재Pos를 하여 방향을 구하고 아래 명령어처럼 현재 회전값, 목표 회전값을 적어주고 속도를 적어주면 회전한다. 이방법은 RotateTowards를 몰랐을 때 사용한 방법으로 cross를 이용하여 현재 바라보는 각도, 목표 각도를 크로스하여 두 백터의 외적을 구해서 목표가 왼쪽에 있으면 cross가 음수가 되고 오른쪽에 있으면 양수가 되어 이걸 응용하여 회전을 시켰다. 아직도 백터의 외적이 이해가 잘 안간다 게임 수학은 너무 어려운..

유니티 정보 2021.07.22