Lịch trình công việc

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Lịch trình công việc điều phối các công việc được thực hiện trong mỗi khung hình khi trò chơi chạy, ngay cả khi nó đang tạm dừng. Các công việc này bao gồm phát hiện đầu vào của người chơi, hoạt hình các nhân vật, cập nhật mô phỏng vật lý và tiếp tục các kịch bản trong trạng thái task.wait().

Trong khi có thể có nhiều công việc đang chạy, lịch trình công việc có thể bị quá tải, đặc biệt trong các tình huống sau:

  • Sử dụng khung nhân vật hoặc sơ đồ đầu vào tùy chỉnh.
  • Tự làm hoạt hình các phần (thay vì sử dụng Animator).
  • Phụ thuộc nhiều vào vật lý chính xác.
  • Nhân bản các đối tượng thường xuyên.

RunService

Cách trực tiếp nhất để thêm các công việc theo khung hình là thông qua các thành viên sau của RunService:

Ưu tiên lịch trình

Lịch trình công việc phân loại và hoàn thành các công việc theo thứ tự sau. Một số công việc có thể không thực hiện trong một khung hình, trong khi những công việc khác có thể chạy nhiều lần.

* Việc thực thi kịch bản trong RunService.Heartbeat khác nhau tùy thuộc vào cài đặt Workspace.SignalBehavior của trò chơi của bạn. Xem Sự kiện hoãn lại.

Thực hành tốt nhất

Để xây dựng các trò chơi hiệu suất cao với hiệu quả trong tâm trí, hãy lưu ý những điều sau:

  • Đừng kết nối/gắn các hàm vào bước hiển thị trừ khi thực sự cần thiết. Chỉ những công việc cần thực hiện sau đầu vào nhưng trước khi hiển thị mới nên làm theo cách này, như di chuyển camera. Để kiểm soát nghiêm ngặt thứ tự, hãy sử dụng BindToRenderStep() thay vì PreRender.

  • Quản lý trạng thái vật lý cẩn thận. PreSimulation xảy ra trước vật lý, trong khi PostSimulation xảy ra sau vật lý. Do đó, logic gameplay ảnh hưởng đến trạng thái vật lý nên được thực hiện trong PreSimulation, chẳng hạn như thiết lập Velocity của các phần. Ngược lại, logic gameplay dựa vào hoặc phản ứng với trạng thái vật lý nên được xử lý trong PostSimulation, chẳng hạn như đọc Position của các phần để phát hiện khi chúng vào các khu vực xác định.

  • Thay đổi biến hình Motor6D nên được thực hiện trong sự kiện PreSimulation. Nếu không, Animators sẽ ghi đè các thay đổi trong khung hình tiếp theo. Ngay cả khi không có Animator, PreSimulation là sự kiện Luau cuối cùng được kích hoạt trước khi Motor6D.Transform được áp dụng vào vị trí của các phần.

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.