Unity/기초 예제

유니티 예제_오브젝트 간단한 움직임 구현, Translate and Rotate, FixedUpdate()와 Update()의 차이_간단한 예제, 유니티 기초

최애뎡 2021. 4. 20. 16:22
728x90
반응형

3D object인 Plane과 Cube를 사용
Cube에 Ex_02라는 스크립트를 추가하였습니다.

스크립트를 보시면 Update() 안에 Input.GetKey를 이용하여 방향키를 눌렀을 때
transform.Translate, transfom.Rotate 이용하여 움직임을 구현하였습니다.
21번 줄에 Time.deltaTime을 사용하지 않은 이유는
Time.deltaTime을 사용하였을 때와 사용하지 않았을 때의 차이를 보여주기 위함입니다.
Time.deltaTime을 사용하게 되면 초당 한 번씩 실행되지만 사용하지 않을 경우엔
Update()의 호출 간격(한 프레임)에 의해 실행되게 됩니다.
그리고 FixedUpdate와 Update의 호출 간격의 차이를 보기 위해
각 부분에 Debug.Log를 이용하여 호출 간격을 확인하였습니다

 

Cube의 움직임을 보면 Time.deltaTime의 사용 유무에 의해
앞으로 갈 때는 50, 뒤로 갈 때는 0.1의 값만큼 증가시켰음에도 불구하고
앞으로 갈 때와 뒤로 갈 때의 속도 차이가 보입니다.
그리고 왼쪽 Console 창의 호출 간격을 보면 알 수 있듯
Update()의 경우
프레임 당 1회 호출되며 규칙적인 시간 간격으로 호출되지 않습니다.
(프레임 처리 시간이 다음 프레임보다 길면 업데이트 호출 사이의 시간이 다르게 됩니다.)
반면 FixedUpdate()의 경우
규칙적인 시간 간격으로 호출되며 호출된 직후 필요한 모든 물리 계산이 수행됩니다.
따라서 Rigidbody, 즉 물리 오브젝트에 영향을 주는 것은
Update()보다 FixedUpdate()에 작성하는 게 좋습니다.
Rigidbody는 다음 예제에서 알아보도록 하겠습니다.

위는

 

Translate and Rotate - Unity Learn

How to use the two transform functions Translate and Rotate to effect a non-rigidbody object's position and rotation. This tutorial is included in the Beginner Scripting project. Previous: Activating GameObjects Next: Look At

learn.unity.com

https://unity3d.com/kr/learn/tutorials/topics/scripting/translate-and-rotate?playlist=17117

 

 

Update and FixedUpdate - Unity Learn

How to effect changes every frame with the Update and FixedUpdate functions, and their differences. This tutorial is included in the Beginner Scripting project. Previous: Awake and Start Next: Vector Maths

learn.unity.com

https://unity3d.com/kr/learn/tutorials/topics/scripting/update-and-fixedupdate?playlist=17117

을 참하여 작성되었습니다.

반응형