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

Kalendarz zadań koordynuje zadania wykonane w każdym klatku, gdy gra jest uruchomiona, nawet gdy gra jest wstrzymana. Te zadania obejmują wykrywanie wejścia gracza, animowanie postaci, aktualizowanie symulacji fizycznej i wznowienie skryptów w stanie wait().

Podczas gdy może być wiele zadań do zrobienia, kalendarz zadań może potencjalnie być przeciążony, szczególnie w następujących sytuacjach:

  • Używanie własnej konfiguracji postaci lub schematu wejścia.
  • Animujesz części sam (zamiast używać Animator ).
  • W zależności od precyzyjnej fizyki.
  • Replikowanie obiektów regularnie.

Ramy

Rama to jednostka logiki gry, w której dzieje się praca. Każda ramka powinna wykonuje zadania wydajnie, prowadząc do więcej ram na sekundę i do smoother doświadczenia gracza.

Bieżący serwis

Najbardziej bezpośredni sposób dodania zadań w grze point-by-point jest poprzez następujące członki RunService :

Priorytet kalendarza

Kalendarz zadań kategoryzuje i ukończa zadania w następującej kolejności. Niektóre zadania mogą nie wykonywać pracy w ramach, a inne mogą wykonywać wiele razy.

Najlepsze praktyki

Aby zbudować wydajne gry z myślą o wydajności, zauważ obserwuje:

  • Nie łącz/zwiąż funkcje renderowania z krokiem renderowania, chyba że jest to absolutnie konieczne. Tylko zadania, które muszą być wykonane po wejściu, ale przed renderowaniem, powinny być wykonane w ten sposób, jak ruch kamery. Dla rygorystycznej kontroli nad porządkiem użyj Class.RunService:BindToRenderStep()|BindToRenderStep()

  • Minimize the amount of waiting scripts. Unikaj używania while wait() do end lub while true do

  • Zmiany transformacji silnika6D powinny być wykonane na węzle PreSimulation. Jeśli nie, Animators będzie ponadpisywał zmiany na następnym klatce. Nawet bez Class.Motor6D.Transform zostanie wdrożony do pozycji