Harmonogram zadań

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Harmonogram zadań koordynuje zadania wykonywane w każdej klatce, gdy gra jest uruchomiona, nawet gdy jest wstrzymana. Zadania te obejmują wykrywanie wejścia gracza, animowanie postaci, aktualizowanie symulacji fizyki i wznawianie skryptów w stanie task.wait().

Choć może być uruchomionych wiele zadań, harmonogram zadań może być przeciążony, szczególnie w następujących sytuacjach:

  • Użycie niestandardowej riggi postaci lub schematu wejścia.
  • Samodzielne animowanie części (zamiast korzystać z Animator).
  • Silne zależności od precyzyjnej fizyki.
  • Regularne replikowanie obiektów.

RunService

Najbardziej bezpośredni sposób dodawania zadań klatka po klatce to korzystanie z następujących członów RunService:

Priorytet harmonogramu

Harmonogram zadań kategoryzuje i wykonuje zadania w następującej kolejności. Niektóre zadania mogą nie wykonywać pracy w danej klatce, podczas gdy inne mogą być uruchamiane wielokrotnie.

* Wykonanie skryptu podczas RunService.Heartbeat różni się w zależności od ustawienia Workspace.SignalBehavior w twojej grze. Zobacz Zdarzenia odroczone.

Najlepsze praktyki

Aby tworzyć wydajne gry z myślą o efektywności, zwróć uwagę na następujące kwestie:

  • Nie łączaj/wiąż funkcji z krokiem renderowania, chyba że jest to absolutnie konieczne. Tylko zadania, które muszą być wykonane po wejściu, ale przed renderowaniem, powinny być realizowane w ten sposób, jak ruch kamery. Aby uzyskać ścisłą kontrolę nad kolejnością, użyj BindToRenderStep() zamiast PreRender.

  • Zarządzaj stanami fizycznymi ostrożnie. PreSimulation odbywa się przed fizyką, podczas gdy PostSimulation odbywa się po fizyce. Dlatego logika rozgrywki, która wpływa na stan fizyki, powinna być realizowana w PreSimulation, na przykład ustawiając Velocity części. Z drugiej strony, logika rozgrywki, która polega na stanie fizyki lub reaguje na niego, powinna być obsługiwana w PostSimulation, na przykład odczytując Position części, aby wykryć, kiedy wchodzą do zdefiniowanych stref.

  • Zmiany transformacji Motor6D powinny być realizowane podczas zdarzenia PreSimulation. Jeśli tego nie zrobisz, Animators nadpiszą zmiany w następnej klatce. Nawet bez Animator, PreSimulation jest ostatnim zdarzeniem Luau, które jest wywoływane przed zastosowaniem Motor6D.Transform do pozycji części.

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.