FixedUpdate, Update và LateUpdate

Tiêu chí

FixedUpdate()Update()LateUpdate()

Thời điểm gọi

Theo nhịp cố định của physics (mặc định 0.02s)

Mỗi khung hình (phụ thuộc FPS)

Sau mọi Update() trong cùng frame

Tần suất

Có thể chạy 0, 1, hoặc nhiều lần trong một frame để “đuổi kịp” thời gian vật lý

1 lần/frame

1 lần/frame, sau Update()

delta time dùng

Time.fixedDeltaTime

Time.deltaTime

Time.deltaTime

Gắn với

Vật lý (PhysX): Rigidbody, lực, va chạm

Logic frame: input, AI nhẹ, UI, timer

Hậu xử lý sau Update: camera follow, căn chỉnh vị trí/rotation

timeScale = 0

Dừng (physics dừng)

Dừng (trừ khi dùng unscaled time)

Dừng (trừ khi dùng unscaled time)

Nên dùng cho

Vật lý, tính toán ổn định theo thời gian

Đọc input, cập nhật gameplay, hoạt ảnh thủ công, UI

Cập nhật camera theo đối tượng đã cập nhật xong; sắp xếp thứ tự/đồng bộ transform

Tránh

Đọc input (không theo frame), thao tác Transform trực tiếp gây xé với Update

Gọi API physics bước lớn/không ổn định theo FPS

Logic làm thay đổi dữ liệu mà Update() còn phụ thuộc

Ghi chú

Nếu FPS thấp, FixedUpdate có thể chạy nhiều lần/frame; giữ logic vật lý ở đây để kết quả ổn định

Logic phụ thuộc hiển thị/frame-accurate nên đặt ở đây

Dùng để “đi sau cùng”: camera mượt, ràng buộc cuối cùng sau Update


Revision #1
Created 2025-10-15 20:41:49 UTC by ThanhDV
Updated 2025-10-15 20:49:23 UTC by ThanhDV