답변:
FixedUpdate
Update
설정에 따라 보다 빠르거나 느리게 실행될 수 있습니다 . 로드 ( Update
실행 속도) 및 설정 속도 FixedUpdate
(편집-> 프로젝트 설정-> 시간에 있음)에 따라 다릅니다 . 이상적으로 Update
는 프레임 당 한 번 실행 되므로 입력을 캡처 할 위치입니다. FixedUpdate
물리 바디 제어와 같이 메소드의 입력에 대해 조치를 취해야하는 경우 플래그를 설정 Update
한 후 처리하십시오 FixedUpdate
.
bool leftMouseDown = false;
void Update()
{
if(Input.GetMouseButtonDown(0))
leftMouseDown = true;
}
void FixedUpdate()
{
if(leftMouseDown )
{
//update physics bodies with input
leftMouseDown = false;
}
}
물리학을 FixedUpdate
자주 업데이트해야 할 가능성이 낮고 고정 업데이트의 물리학이 변수 업데이트의 물리학보다 예측 ( 결정론 ) 이 훨씬 더 쉽기 때문에 방법 에서 물리학을 제어하는 것이 좋습니다 .
FixedUpdate
. 그것은 "느낌"이 무엇인지 실제로 파악하기 위해 약간의 놀이 테스트가 필요한 것들 중 하나입니다.
각각의 기능을 이해해야합니다. Update()
각 프레임마다 가능한 한 자주 호출됩니다 (확실하지 않을 수도 있습니다). FixedUpdate()
일정 시간마다 호출되므로 "고정"됩니다.
입력은 그처럼 Update()
간단합니다 ( FixedUpdate()
입력 이벤트를 포착하지 못할 수도 있기 때문에 ). 그러나 게임 로직은 어느 쪽이든 들어갈 수 있습니다. 물리학은 결정 론적이어야하므로 그것이 있어야합니다 FixedUpdate()
. 다른 것들은 필요 없습니다. 사용법에 따라 적절한 기능을 결정해야합니다.
대체로 일부 응용 프로그램은 모든 게임 로직 업데이트를 FixedUpdate()
(외부에서도) 업데이트한다고합니다. Unity
"고정 단계 게임 루프"라고합니다. 고정 단계 함수에 모든 업데이트 코드를 사용하면 결정 성이 있으며 앱이 매번 (및 각 장치에서) 동일한 방식으로 작동 할 가능성이 높아집니다. 또한 리플레이와 같은 멋진 기능도 사용할 수 있습니다.