# ✅ 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?


---

## Contents

Part of [🕹️ Unity cho người mới: tự làm game 2D và đóng gói lên iOS, Android](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android.md)

- **🎮 Gameplay 2D cốt lõi trong Unity**
  - [🔁 Vòng lặp game và cấu trúc project Unity 2D](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/vong-lap-game-va-cau-truc-project-unity-2d.md)
  - [🕹️ Nhận input và di chuyển nhân vật](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/nhan-input-va-di-chuyen-nhan-vat.md) (sign-in required)
  - [🧱 Capstone: dựng prototype với va chạm và tính điểm](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/capstone-prototype-gameplay-2d.md)
  - [✅ Checkpoint: gameplay 2D cốt lõi](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/checkpoint-gameplay-2d-cot-loi.md) — this lesson
- **📦 Hoàn thiện và đóng gói game capstone**
  - [⚖️ Cân bằng độ khó và nhịp độ chơi](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/can-bang-do-kho-va-nhip-do-choi.md)
  - [🏁 Capstone: hoàn thiện vòng chơi, UI điểm và game over](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/capstone-hoan-thien-vong-choi-ui-diem-game-over.md) (premium content)
  - [📱 Build bản chơi thử trên Android và iOS](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/build-ban-choi-thu-android-ios.md)
  - [✅ Checkpoint: hoàn thiện và đóng gói](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/checkpoint-hoan-thien-va-dong-goi.md)
- [Course cheatsheet](https://everwise.study/courses/unity-cho-nguoi-moi-tu-lam-game-2d-va-ong-goi-len-ios-android/cheatsheet.md) (premium content)
