✅ Checkpoint: gameplay 2D cốt lõi

By Ngọc Vương Trương

Quiz

  1. Trong vòng lặp game của Unity, hàm nào được gọi mỗi frame đúng một lần và là nơi phù hợp để đọc input cùng phần lớn logic game?
    • LateUpdate
    • Update
    • Awake
    • FixedUpdate
  2. Bạn viết code di chuyển nhân vật bằng Rigidbody2D nhưng đặt lệnh di chuyển trong Update. Hiện tượng gì dễ xảy ra nhất?
    • Nhân vật bị rung và đôi khi xuyên qua vật thể khi frame rate dao động
    • Game báo lỗi đỏ ngay trong Console và không chạy được
    • Nhân vật di chuyển nhanh gấp đôi vì Update chạy hai lần mỗi frame
    • Nhân vật di chuyển chậm hơn bình thường vì bị nhân deltaTime hai lần
  3. Vì sao phải nhân tốc độ di chuyển với Time.deltaTime?
    • Để giảm số lần gọi GetComponent trong mỗi frame
    • Để Unity tự động bật chế độ va chạm Continuous cho nhân vật
    • Để tốc độ tính theo giây và không phụ thuộc frame rate của thiết bị
    • Để nhân vật tự động dừng lại khi không có input
  4. Bạn muốn nhân vật đi chéo không nhanh hơn đi thẳng. Cần làm gì với vector input trước khi nhân với tốc độ?
    • Gọi .normalized riêng trên từng trục x và y
    • Chia tốc độ cho 2 khi cả hai trục đều khác 0
    • Dùng Input.GetAxis thay cho Input.GetAxisRaw
    • Gọi .normalized trên vector sau khi đã ghép hai trục
  5. Vì sao vật phẩm nhặt được (Collectible) nên có Collider2D với ô Is Trigger được tick?
    • Để vật phẩm tự động biến mất sau một khoảng thời gian
    • Để vật phẩm không cần Rigidbody2D trên nhân vật nữa
    • Để nhân vật đi xuyên qua vật phẩm và sự kiện OnTriggerEnter2D được gọi
    • Để vật phẩm đẩy nhân vật ra và sự kiện OnCollisionEnter2D được gọi
  6. Để chuyển động không phụ thuộc frame rate, ta nhân tốc độ với ____.
  7. Sự kiện được gọi khi hai collider có Is Trigger chạm nhau là ____.
  8. Hãy tự đánh giá prototype capstone của bạn: nhân vật di chuyển, va chạm với vật phẩm và cộng điểm đã chạy đúng chưa?

Sign in to submit answers.