메뉴의 edit>project setting>time에 Fixed Timestep값을 조정하면
FixedUpdate함수가 불리는 주기를 설정합니다.
기본이 0.02로 셋팅되어 있고 이는 50fps로 호출됨을 의미합니다.
Update함수는 구동되는 기기에 dependent하기에 framerate가 달라질 수 있습니다.
이는 physics처리에 적절하지 않습니다.
rigidbody를 움직이고자 할 경우 반드시 FixedUpdate함수에서 처리 하도록 합니다.
FixedUpdate함수는 설정된 값으로 주기마다 실행되어 기기의 영향을 받지 않습니다.
단, 반드시 호출된다는 의미는 성능에 따라 한번에 여러번 호출될 수 있다는 의미를 가지고 있기도 합니다.
* LateUpdate는 Update함수이후에 호출됩니다.
*** Input입력은 Update에서 physics처리는 FixedUpdate 에서!!
FixedUpdate함수에서 Input처리를 수행하고자 할 경우
아래 예시와 같이 case1 방법 보다는 case2방법을 추천함.
case1
——————————————————————————————————————
using UnityEngine;
public class Test:MonoBehaviour{
void FixedUpdate(){
if(Input.GetKeyDown(KeyCode.Space)){
//Action
}
}
}
——————————————————————————————————————
case2
——————————————————————————————————————
using UnityEngine;
public class Test:MonoBehaviour{
bool action = false;
void Update(){
if(Input.GetKeyDown(KeyCode.Space)){
action = true;
}
}
void FixedUpdate(){
if(action){
//Action
action = false;
}
}
}
——————————————————————————————————————
댓글 없음:
댓글 쓰기