Menu
CoddyTech

Thứ tự vòng đời

Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 73 trên 85.

Unity gọi các phương thức trong script theo một thứ tự cố định, từ lúc đối tượng xuất hiện đến lúc bị hủy:

  1. Awake(): một lần, khi đối tượng được tải hoặc khởi tạo.
  2. OnEnable(): ngay sau đó, rồi lặp lại mỗi khi đối tượng được hiển thị.
  3. Start(): một lần, trước khung hình đầu tiên của script.
  4. FixedUpdate(): theo đồng hồ vật lý, mặc định 50 lần mỗi giây, vì vậy có thể chạy 0, một hoặc vài lần trong một khung hình, luôn trước Update() của khung hình đó.
  5. Update(): một lần mỗi khung hình.
  6. LateUpdate(): một lần mỗi khung hình, sau mọi lần chạy Update().
  7. OnDisable(): mỗi khi đối tượng bị ẩn và trước khi bị hủy.
  8. OnDestroy(): một lần, khi đối tượng bị hủy.

Các bước từ 4 đến 6 lặp lại trong mỗi khung hình khi đối tượng còn hoạt động. Đối tượng được tạo ra cũng trải qua cùng danh sách này: Instantiate chạy Awake() và OnEnable() của bản sao trước khi trả về, còn Start() của bản sao chạy trước Update() đầu tiên.

Từ thứ tự này, ta rút ra hai thói quen. Code trong Awake() thiết lập các trường riêng của một đối tượng kịp thời để mọi đối tượng khác dùng trong Start(). Còn code vật lý nên đặt trong FixedUpdate(), vì các bước của hàm này luôn cách nhau 0.02 giây, bất kể khung hình chạy nhanh hay chậm.

Tự làm thử

Bài học này không có thử thách code.

Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity

Tự luyện tập: Playground Unity