Planer 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.

Planer zadań koordynuje zadania wykonywane co ramę, gdy gra się uruchamia, nawet gdy gra jest wstrzymywana .Te zadania obejmują wykrywanie wpisu gracza, animowanie postaci, aktualizowanie symulacji fizycznej i wznowienie skryptów w stanie task.wait().

Chociaż może istnieć wiele zadań w wykonaniu, planownik zadań może być potencjalnie przeciążony, szczególnie w następujących sytuacjach:

  • Używanie niestandardowego charakteru lub schematu wejściowego.
  • Animowanie części samodzielnie (zamiast używać Animator ).
  • Silnie zależny od dokładnej fizyki.
  • Replikowanie obiektów regularnie.

Ramy

Rama ramka jest jednostką logiki gry, w której wykonywana jest praca.Każda rama powinna wykonywać zadania sprawnie, prowadząc do większej liczby ram na sekundę i bardziej płynnego doświadczenia gracza.

Uruchom usługę

Najbardziej bezpośredni sposób dodawania zadań gry ram po ramie jest poprzez następujących członków RunService :

Priorytet harmonogramu

Planer zadań kategoryzuje i kończy zadania w następującej kolejności.Niektóre zadania mogą nie wykonywać pracy w ramach, podczas gdy inne mogą działać wielokrotnie.

Najlepsze praktyki

Aby budować wydajne gry z myślą o wydajności, zwróć uwagę na obserwujekwestie:

  • Nie łącz/wiąż funkcji z krokiem renderowania, chyba że jest to absolutnie konieczne.: Tylko zadania, które muszą być wykonane po wpisaniu, ale przed renderowaniem, powinny być wykonywane w taki sposób, jak ruch kamery.Aby mieć ścisłą kontrolę nad zamówieniem, użyj BindToRenderStep() zamiast PreRender.

  • Starannie zarządzaj stanami fizycznymi.: PreSimulation zdarza się przed fizyką, podczas gdy PostSimulation zdarza się po fizyce.Dlatego logika rozgrywki, która wpływa na stan fizyki, powinna być wykonana w PreSimulation, tak jak ustawienie Velocity części.W przeciwieństwie do tego, logika rozgrywki, która polega na korzystaniu z lub reagowaniu na stan fizyki, powinna być obsługiwana w PostSimulation, tak jak czytanie Position części, aby wykryć, kiedy wchodzą do określonych stref.

  • Zmiany transformacji Motor6D powinny być wykonane na wydarzeniu PreSimulation.: Jeśli tego nie zrobisz, Animators przepisze zmiany na następnym ramie.Nawet bez Animator, PreSimulation jest ostatnim wydarzeniem Luau wystrzelonym przed Motor6D.Transform zastosowaniem pozycji części.