Người bắt sao
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 50 trên 85.
Chương này xây dựng một trò chơi nhỏ, Bắt ngôi sao, mỗi bài học thêm một tính năng: một ngôi sao rơi xuống, bạn trượt bộ hứng sang trái và phải bên dưới ngôi sao, mỗi lần bắt được sẽ ghi điểm và khiến ngôi sao tiếp theo rơi nhanh hơn, còn ba lần bắt hụt sẽ kết thúc trò chơi. Tất cả nằm trong một script, Catcher, trên bộ hứng. Tính năng đầu tiên là di chuyển: bộ hứng trượt bằng các phím mũi tên và không bao giờ rời khỏi mặt sàn.
Giữ một số trong giới hạn là nhiệm vụ của Mathf.Clamp(value, min, max). Hàm này trả về min khi giá trị nhỏ hơn min, max khi giá trị lớn hơn max, còn lại trả về chính giá trị đó. Camera này đi theo người chơi lên một tòa tháp, nhưng chiều cao luôn nằm trong khoảng từ 2 đến 12:
[SerializeField] private Transform player;
void Update()
{
float y = Mathf.Clamp(player.position.y, 2f, 12f);
transform.position = new Vector3(transform.position.x, y, transform.position.z);
}Clamp trả về một số mới và không tự thay đổi gì, vì vậy hãy gán kết quả. Hãy dùng Clamp sau mọi thay đổi trong khung hình và trước khi ghi lại vị trí, để không khung hình nào hiển thị đối tượng vượt quá giới hạn.
Thử thách
Trung bìnhThêm chuyển động cho thanh đỡ màu xanh.
- Trong
Update(), sao chéptransform.position.xvàofloat x, rồi cộng hoặc trừspeed * Time.deltaTimetùy theo phím mũi tên đang được giữ. - Giữ thanh đỡ rộng 2 đơn vị trên sàn (x từ -5 đến 5):
x = Mathf.Clamp(x, -4f, 4f);. - Gán lại
xvàotransform.position, giữ nguyên y và z.
Nhấn Chơi rồi giữ các phím mũi tên: thanh đỡ sẽ dừng ở mép. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
void Update()
{
// Phím mũi tên: di chuyển dọc theo trục x với tốc độ speed đơn vị mỗi giây.
// Giữ toàn bộ bộ hứng trên sàn (x từ -5 đến 5, bộ hứng rộng 2 đơn vị).
}
}
Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity
1C# cơ bản trong Unity
Xin chào, UnityBiếnSố thập phân cần có fVăn bản trong ConsoleBiến có thể ghi nhớIf và elseSo sánh các sốÔn tập: Thu thập xu7Vòng lặp và phương thức
Lặp lại với forVòng lặp lồng nhauViết phương thứcPhương thức trả lờiMảngÔn tập: Cầu thang2Làm cho nó chuyển động
Đặt khối lập phươngDi chuyển theo từng khung hìnhXoay mỗi giâyĐiều khiển bằng các phímÔn tập: Lái khối lập phương5Vectơ
Cộng vectơPhương hướngKhông gian cục bộ và không gian thế giớiTốc độ theo đường chéoKhoảng cách giữa các vậtVector3 là một structÔn tập: Người điều khiển drone8GameObject và thành phần
Tham chiếu trong InspectorLấy một thành phầnThành phần bị thiếuThêm một thành phầnRequireComponentHiện và ẩnÔn tập: Công tắc đèn3Inspector
Các trường trong InspectorSerializeFieldSố thực và MathfThuộc tính trong InspectorÔn tập: thang máy6Biến đổi và hệ phân cấp
Đối tượng cha và conKéo cờ lênTỷ lệNhìn vào các vật thểDi chuyển đến một điểmÔn tập: Mặt trăng quay quanh9Dự án: Bắt lấy ngôi sao
Người bắt saoNgôi sao rơiTự luyện tập: Playground Unity