Learn Unity 3D-v.5.x

Xử lý va chạm trong Unity

Có 2 loại va chạm: Collision và Trigger
Phân biệt nhau rất dễ:
–    Collision là va chạm mà hai object không đi xuyên qua được, hay nói cách khác là “đụng”, khi object này đụng object kia thì bị cản lại. Ví dụ: quả bóng đụng tường bị dội lại
–    Trigger là va chạm mà object này có thể đi xuyên qua object kia. Ví dụ: quả bóng bay ngang qua ngọn lửa.

 

Vậy đầu tiên ta phải tạo ra không gian va chạm bao quanh object bằng cách thêm một component Collider cho object đó

Cách làm:
–    chọn object
–    vào Menu Component > Physics > (hoặc nhấn Add Component, search “collider”) và chọn 1 kiểu Collider trong số các kiểu sau:
o    Box Collider: không gian va chạm bao quanh object là 1 hình khối vuông
o    Sphere: … hình khối cầu
o    Capsule: … hình viên nhộng
o    Mesh: … hình dạng tương ứng với hình dạng của vật thể (do vậy sẽ làm nặng game nhất)
o    Wheel: … hình đĩa tròn
o    Terrain: …hình bề mặt, thường dùng cho mặt đất

–    Lúc này object sẽ xuất hiện 1 component Collider tương ứng, và vật thể cũng sẽ có 1 khung màu xanh lá bao quanh tượng trưng cho không gian Collider (gọi tắt là Collider)

Các thông số trong Component Collider:
–    Is Trigger: xác định là loại va chạm nào, giá trị True là va chạm trigger, False là va chạm collision
–    Material: bề mặt va chạm đề tạo hiệu ứng vật lý,  ví dụ như hiệu ứng đàn hồi cần bề mặt đàn hồi, … có thể bỏ qua
–    Center: vị trí tương đối của Collider so với object
–    Ngoài ra, mỗi loại Collider sẽ có vài thông số riêng như: Box có Size, Sphere có Radius (bán kính), Capsule có Height và Direction, …

Mẹo: để thay đổi kích thước nhanh chóng cho Collider, bạn có thể nhấn Shift và kéo thả các núm trên khung xanh lá
Ngoài ra, để có thể nhận sự kiện va chạm, bạn cũng cần add component Rigibody cho từng object

Mẹo: bỏ chọn Use Gravity để object không bị rơi

Bước 2: Viết Code xử lý va chạm
Hàm sự kiện va chạm phải được đặt trong đoạn script là component của object có Collider (xem hình)
Ở ví dụ này, ta tạo mới script Xu_Ly_Va_Cham_Hinh_Cau_A cho hình cầu A và Xu_Ly_Va_Cham_Hinh_Khoi_B cho hình khối B

ở mỗi script của A và B, ta viết thêm các hàm sự kiện sau:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s