업데이트 대 FixUpdate 대 LateUpdate

Unity API의 중요한 부분은 지속적으로 실행되는 업데이트 기능입니다.

Unity 'Update', FixedUpdate, LateUpdate의 세 가지 유형의 업데이트 기능이 있습니다.

'Update' 대 FixedUpdate

'Update' 함수와 FixedUpdate 함수의 차이점은 실행 빈도에 있습니다.

'Update' 함수는 프레임당 한 번 실행되는 반면 FixedUpdate은 'Project Settings' -> 'Time'의 "Fixed Timestamp" 값에 의해 제어되는 일정한 속도로 실행됩니다.

'Update' 함수는 게임 로직, 플레이어 입력 및 기본적으로 비물리학 계산을 프로그래밍하는 데 적합합니다.

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            //Space button has been pressed
        }    
    }

반면에 FixedUpdate 함수는 레이캐스팅, 강체에 힘 적용 또는 프레임 속도에 독립적이어야 하는 모든 계산과 같은 물리 기반 계산에 적합합니다.

    void FixedUpdate()
    {
        //Use Physics Raycast to detect if there any object in front
        RaycastHit hit;
        if(Physics.Raycast(transform.position, transform.forward, out hit, 10))
        {
            Debug.Log("Object '" + hit.transform.name + "' is currently in front of this object.");
        }
    }

업데이트 대 LateUpdate

'Update' 및 LateUpdate은 실행 빈도 측면에서 동일하지만(둘 다 프레임당 한 번 실행) LateUpdate은 모든 'Update' 함수 다음에 실행됩니다.

마지막으로 LateUpdate 기능은 일반적으로 애니메이션 모델 뼈대를 수정하거나(예: 플레이어 모델을 위아래로 보이게 만들기) 부드러운 카메라 추적을 구현하는 데 사용됩니다.

    void LateUpdate()
    {
        //Make camera tagged 'MainCamera' look at this object transform
        Camera mainCamera = Camera.main;
        mainCamera.transform.LookAt(transform);
    }

테이크아웃

각 업데이트 기능에는 고유한 사용 사례가 있습니다.

이를 조합하여 사용하여 다양한 시나리오를 구현하세요.

추천 기사
Unity의 MonoBehaviour 가이드
깨우기 대 시작
Unity에서 런타임 애니메이터 컨트롤러 사용
C#의 유용한 키워드 Unity 목록
Unity에서 키보드 및 마우스 입력 구현
함수 및 메서드 호출 이해
Unity C# 스크립팅 언어 소개