작업 일정 계획자

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

태스크 스케줄러 는 게임이 일시 중지되더라도 각 프레임에서 수행된 태스크를 게임이 실행되는 것처럼 조정합니다.이 작업에는 플레이어 입력 감지, 캐릭터 애니메이션, 물리 시뮬레이션 업데이트 및 task.wait()이 포함됩니다.

실행 중인 여러 태스크가 있더라도 태스크 일정자는 특히 다음과 같은 상황에서 과부화될 수 있습니다.

  • 사용자 지정 캐릭터 리그 또는 입력 스키마 사용.
  • 부품을 직접 애니메이션화(Animator를 사용하는 대신).
  • 정확한 물리학에 크게 의존합니다.
  • 정기적으로 개체 복제.

프레임

A 프레임 은 작업이 수행되는 게임 논리의 단위입니다.각 프레임은 효율적으로 작업을 수행하여 초당 더 많은 프레임 과 부드러운 플레이어 경험을 제공해야 합니다.

서비스 실행

프레임별 게임 작업을 추가하는 가장 직접적인 방법은 다음 멤버를 통해 RunService :

일정자 우선순위

작업 일정자는 다음 순서로 작업을 분류하고 완료합니다.일부 작업은 프레임에서 작업을 수행하지 않을 수 있고, 다른 작업은 여러 번 실행될 수 있습니다.

모범 사례

효율성을 고려하여 성능 좋은 게임을 구축하려면 팔로잉사항을 참고하십시오:

  • 절대적으로 필요하지 않은 한 렌더링 단계에 함수를 연결하거나 바인딩하지 마십시오.입력 후 렌더링하기 전에 수행해야 하는 작업만 카메라 이동과 같은 방식으로 수행해야 합니다. Only tasks that must be done after input but before rendering should be done in such a way, like camera movement.주문에 대한 엄격한 제어를 위해 BindToRenderStep() 대신 PreRender 을 사용하십시오.

  • **물리적 상태를 신중하게 관리하십시오.: 물리학이 발생하기 전에 발생하고, 물리학이 발생하기 전에 발생합니다.따라서 물리 상태에 영향을 주는 게임플레이 논리는 부품의 ** 6> 설정과 같이 9>에서 수행해야 합니다.반대로, 물리 상태에 의존하거나 반응하는 게임플레이 논리는 부품의 을 읽어 정의된 영역에 들어갈 때를 감지하거나 반응하도록 처리해야 합니다.

  • Motor6D 변환 변경은 프리시뮬레이션 이벤트에서 수행해야 합니다.: 그렇지 않으면, Animators 다음 프레임에서 변경 사항을 덮어씁니다.심지어 Animator 없이도, PreSimulation 는 부품 위치에 Motor6D.Transform 적용되기 전에 발생하는 마지막 Luau 이벤트입니다.