Khởi động Tưởng Dễ Mà Khó

Đã lâu không động vào Unity rồi, hôm nay rảnh rỗi quyết định làm con game máy xúc mini cho vui. Mở máy lên, khởi động Unity bản mới nhất. Xong cái là tôi đã thấy hơi mệt. Giao diện thay đổi nhiều quá, tìm nút Scene với Hierarchy mãi mới thấy. Chả hiểu mấy ông dev bên Unity nghĩ gì mà cứ vài tháng lại đảo lộn hết chỗ này chỗ kia.

Lôi con asset máy xúc tải free trên Store ra dùng. Tải về mới biết chất lượng kiểu “hàng chợ đêm”. Texture nhìn như bôi mỡ, cái bucket gắn lỏng lẻo muốn rơi. Ngồi fix tay từng khớp xoay, chỉnh lại collider cho cần máy xúc. Cực nhất là cái phần gắn controller. Ban đầu định dùng ARCore cho ngầu, thử 10 phút thấy camera cứ nhảy múa lung tung giữa phòng khách. Mệt nghỉ, quay sang dùng joystick ảo cho lành.

Vật Lý Như Đùa

Đến lúc cho máy xúc đào đất thì vật lý bắt đầu trở chứng. Đổ asset đất từ store vào. Test thử: máy xúc chạm vào đống đất – cả đống đất nổ tung như pháo hoa, hạt đất bay lấp cả màn hình. Con mèo nhà tôi đang ngủ cạnh bàn giật mình chạy mất dép. Tôi ngồi vặn chỉnh từng thông số trong Particle System:

  • Giảm velocity từ 10 xuống 0.5
  • Tắt bớt collision giữa các hạt đất
  • Đổi gravity scale thành âm để đất rơi xuống thay vì bay lên trời

Lại còn vụ đất dính vào bucket nữa. Lúc đầu set trigger collider, đất xuyên thủng bucket như dao cắt bơ. Đổi sang rigidbody kèm collider thật thì bucket đẩy đất văng tan tác. Cuối cùng phải kết hợp cả hai: trigger để detect va chạm, rigidbody để giả lập khối lượng. Thêm mấy dòng code lưu số đất trong bucket, mỗi lần đổ rác thì giảm số lượng particle.

Kiên Trì Mới Có Kết Quả

Sau 3 tiếng vật lộn, cuối cùng cũng có prototype chơi được. Mấy cái bug ngớ ngẩn cứ lòi ra:

  • Xoay cabin quá nhanh làm camera rối loạn tiền đình
  • Đang đào thì bàn tay người chơi che mất half joystick
  • Âm thanh máy xúc nổ như xe tăng ở chế max volume

Chỉnh sửa thêm cả tiếng nữa mới ưng ý. Thêm cái progress bar hiển thị lượng đất trong bucket. Test bằng cách đổ đất vào thùng rác ảo – ban đầu đổ trượt nên đất rơi lả tả khắp sàn. Đặt collider hình ống quanh thùng rác mới giải quyết được.

Cho thằng bé nhà tôi test thử. Nó chơi 5 phút đã đạt điểm cao nhất: 3 thùng rác đầy! Dù animation máy xúc vẫn hơi giật giật, nhưng nhìn cái cách nó hì hục điều khiển bằng hai ngón tay mà tôi thấy công sức bỏ ra xứng đáng. Cuối ngày export file apk sang điện thoại, chơi thử thấy pin tụt không phanh do chưa tối ưu draw call. Chắc cuối tuần này lại phải ngồi cắt lại texture với bake light tiếp rồi!

By