본문 바로가기

unity3

[Unity 3D] Vector3.Distance (가장 가까운 오브젝트 찾기) Vector3.Distance(Vector3 a, Vector3 b) - a와 b 사이에 거리를 측정해 반환하는 함수 거리를 구하는 방법들 Distance 의외에도 거리를 재는 다른 방법들이 있다. Vector3.Distance 와 magnitude는 정확한 거리 계산을 하고, sqrMagnitude는 단순히 두 오브젝트 간의 거리를 비교할 때 사용한다. sqrMagnitude는 루트 계산을 하지 않기 때문에 Distance와 magnitude 보다 속도가 훨씬 빠르다. 루트 계산을 하지않고 벡터 연산만 한 후 그 벡터의 제곱근의 값만을 반환하기 때문이다. 예제 아래 예제는 Sphere를 기준으로 Sphere와 제일 가까운 큐브를 찾는것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1.. 2019. 5. 16.
[Unity 3D] FixedUpdate (유도탄 만들기) FixedUpdate - FixedUpdate도 Update와 마찬가지로 프레임마다 보통 여러 번 불리게 된다. 하지만 각각의 호출은 고정된 시간 간격을 기반으로 규칙적으로 표준화되어 일어난다. 가장 흔히 사용하는 경우는 유니티의 물리 기능을 사용할 때다. 시간에 따라 Rigidbody 컴포넌트의 속도나 속성을 업데이트하는 경우 Update보다 FixedUpdate가 더 적합하다. Update는 안 되는 것일까? Update는 프레임 속도에 영향을 받기 때문에 불규칙하게 호출되어서 물리 검사가 제대로 되지 않을 수 가있으며, 또한 과도한 Update 호출을 막기 위하여 FixedUpdate를 사용하는 것이다. Time.deltaTime과 같이 계산해야 할까? FixedUpdate의 움직임을 적용하여 계산.. 2019. 5. 13.
[Unity 3D] Time.deltaTime 과 Update Time.deltaTime - 이전 프레임에서 현재 프레임까지 걸린 시간 Update() Time.deltaTime에 대해서 자세히 설명하기 전에 먼저 Update문을 설명하자면 Update()는 유니티에서 가장 빈번히 사용되는 함수이며, 스크립트가 활성화돼 있을 때 매 프레임마다 함수로써 물리 효과가 적용되지 않은 오브젝트의 움직임이나 단순한 타이머, 키 입력 등등 모니터링 기능이 필요할 때 유용하다. 하지만 Update 가 모든 컴포넌트에 매 프레임마다 불려지는 것이 보장되지는 않는다. 프레임은 소중하다 - 매 초마다 많은 횟수의 프레임이 반복된다. 그러지 못하면 게임이 버벅 거리거나 오류가 생긴 것처럼 보일 수 있다. 매 프레임마다 씬 안에 모든 활성화된 MonoBehaviour 컴포넌트에 Upda.. 2019. 5. 12.