반응형 유니티 공부158 Unity - Quaternion.LookRotation() Quaternion.LookRotation public static Quaternion LookRotation(Vector3 forward, Vector3 upwards = Vector3.up); 매개변수 forward- 회전시킬 방향 벡터 upwards - 원하는 방향 벡터를 바라보고 있을 때의 "위"를 지정, Vector3.up이 기본값으로 사용된다. 반환 주어진 방향 벡터를 바라보는 Quaternion upwards가 필요한 이유 Quaternion.LookRotation은 주어진 forward방향으로 회전을 한다. 회전을 하는데 있어서 여러가지 방향 중 하나를 선택해야 하는데 이에 기준이 필요하다. upwards가 이를 결정해준다. 예를 들어 upwards 매개변수를 기본 값 Vector3.up으.. 2023. 5. 9. Unity - 오일러(Euler) vs 쿼터니언(Quaternion) 오일러(Euler) 오일러 각은 는 X,Y,Z의 각도 값 3개로 표현된다. 오일러 회전을 적용하기 위해 각 회전 값을 해당 축으로 기준 삼아 순차적으로 회전한다. 회전 시키는 순서에 따라 모양이 다르다. 장점 01 직관적 오일러 각은 세 각으로 구성된 직관적이고 사람이 읽기 쉽게 표시 된다. 02 180도 이상 표현 가능 오일러 각은 180도가 이상의 회전을 통해서 한 방향에서 다른 방향으로의 회전을 표현할 수 있다. 단점 01 Interpolation 3축에 대해 회전이 종속적이므로 2개의 오일러 각도 사이를 보간할 때 어느 방향으로 돌아갈지 중간 값을 결정할 수 없는 문제가 생긴다. 02 GimbalLock 짐벌 락 문제, 세 회전을 차례대로 적용하는 경우 첫 번째 또는 두 번쨰 회전의 결과로 세 번.. 2023. 5. 8. Unity- Quaternion.Slerp() Lerp에 대해 알아보러 가기 유니티 - Mathf.Lerp() 1. Lerp(Linear Interpolation) 두 값을 선형 보간(linear interpolation)하여 새로운 값을 계산 매개변수 a : 시작 값 b : 종료 값 t : a와 b 실수 값 사이의 보간 비율 반환값 a + ( b - a ) * t 예시) a = 0, b = 10, t = 0.5 code-piggy.tistory.com 1. Slerp을 사용하는 이유 Lerp의 경우 계산이 빠르지만 두 점 사이 직선을 통과하기 때문에 회전 경로가 부드럽지 못하다. 위 그림에서 보면 Lerp에서 t를 일정하게 증가 시킬때 호의 길이가 제각각 다른 것을 확인 할 수 있다. 이를 보완하기 위해서 Slerp을 사용한다. 2. Slerp(S.. 2023. 5. 8. Unity- Vector3.ProjectOnPlane() Vector3.ProjectOnPlane() public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal); 파라미터 vector- 정사영하고자 하는 벡터 planeNormal - plane의 법선 벡터 반환 vector3 - vector를 평면의 법선 벡터 planeNormal에 수직인 방향으로 투영된 벡터를 반환 사용 예시 플레이어가 이동하는 방향(moveDirection)을 바닥면의 법선벡터(groundNormal)에 대해 정사영하여 바닥면에 수직인 방향 targetDirection을 구한다. Vector3 targetDirection = Vector3.ProjectOnPlane(moveDirection, groundNormal).. 2023. 5. 8. Unity- Mathf.Lerp() Slerp에 대해 알아보러 가기 유니티 - Quaternion.Slerp() Lerp에 대해 알아보러 가기 유니티 - Mathf.Lerp() 1. Lerp(Linear Interpolation) 두 값을 선형 보간(linear interpolation)하여 새로운 값을 계산 매개변수 a : 시작 값 b : 종료 값 t : a와 b 실수 값 사이의 보간 비율 code-piggy.tistory.com 1. Lerp(Linear Interpolation) 두 값을 선형 보간(linear interpolation)하여 새로운 값을 계산 매개변수 a : 시작 값 b : 종료 값 t : a와 b 실수 값 사이의 보간 비율 반환값 a + ( b - a ) * t 예시) a = 0, b = 10, t = 0.5 이라면.. 2023. 5. 7. Unity- Update vs FixedUpdate vs LateUpdate Update() 스크립트가 enabled 상태일때 프레임마다 실행된다. 물리 효과가 적용되지 않은 오브젝트의 움직임이나 단순한 타이머, 키를 입을 받을 때 사용된다. Update는 불규칙한 호출이므로 물리 엔진 충돌 검사가 제대로 안될 수도 있기 때문에 물리 엔진에 사용되지 않는다. FixedUpdate() 프레임을 기반으로 호출되는 Update와 달리 Fixed Timestep에 설정된 값에 따라 일정한 간격으로 실행된다. 프레임이 어떻게 진행되는지에 따라서 각 프레임마다 여러 번, 한 번 혹은 아예 실행하지 않을 수도 있다. 물리 효과가 적용된(Rigidbody) 오브젝트를 조정할때 사용된다. LateUpdate() 모든 Update 함수가 호출된 후, 마지막으로 호출된다. 주로 오브젝트를 따라가는 .. 2023. 5. 7. 이전 1 ··· 18 19 20 21 22 23 24 ··· 27 다음 반응형