Checkpoint: gameplay 2D cốt lõi
Quiz
- 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
- 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
- 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
- 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
- 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
- Để chuyển động không phụ thuộc frame rate, ta nhân tốc độ với ____.
- Sự kiện được gọi khi hai collider có Is Trigger chạm nhau là ____.
- 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.