1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài 5 lập trình game 2d với unity thành phần vật lý và xử lý va chạm

8 418 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

Ở phần trước chúng ta đã tìm hiểu được các tạo Prefab và một số thao tác cơ bản với Prefab (xoá, thêm) trong quá trình game thực thi, và các thao tác cơ bản khác... Tiếp theo hôm nay mình sẽ hướng dẫn cách thêm phần xử lý vật lý và va chạm vào đối tượng game.

Làm Game 2D Unity - Phần - Thành phần vật lý xử lý va chạm 20 February 2014 at 10:03 Chào bạn, Dạo nhiều việc, nên việc viết hướng dẫn bị gián đoạn, mong bạn thơng cảm (Hì :D) Ở phần trước tìm hiểu tạo Prefab số thao tác với Prefab (xố, thêm) q trình game thực thi, thao tác khác Tiếp theo hôm hướng dẫn cách thêm phần xử lý vật lý va chạm vào đối tượng game Trước tiếp, bạn chưa đọc phần trước, ta tham khảo lại Link phần 4: https://www.facebook.com/notes/hội-lập-trình-viên-game-đà-nẵng/làm-game-2dbằng-unity-phần-4-prefab-script-và-một-số-xử-lý-cơ-bản/242866329218970 Link dự án mẫu phần 5: https://www.dropbox.com/sh/xu5rl7s3ssch2bk/e_Ny9i4LwW III Tạo đối tượng Game Object Sprite Animation Prefab Script điều khiển máy trạng thái Thành phần vật lý xử lý va chạm a Thêm thành phần vật lý (Physics 2D) Thành phần vật lý hỗ trợ thao tác vật lý như: tác dụng lực, trọng lực trái đất, ma sát Để thêm thành phần vật lý ta làm sau: Hierarchy, chọn đối tượng MainCharacter (đối tượng cần thêm) / Menu /Component / Physics 2D / Rigidbody 2D Ta thấy cửa sổ Inspector chọn đối tượng MainCharacter thêm Component Rigidbody 2D sau: Một số giá trị cần lưu ý sau: Mass: khối lượng đối tượng Linear Drag: Hệ số ma sát vật chuyển động kéo Angular Drag: Hệ số ma sát vật chuyển động quay Gravity scale: giống hệ số G vật lý (~ 9.81), ảnh hưởng lực hút trái đất Ta đặt = 0, tức không ảnh hưởng lực hút trái đất Is Kinematic: loại bỏ tác dụng vật lý khỏi đối tượng, thường sử dụng với đối tượng tường, Fixed Angle: Đối tượng ln nằm góc cố định Khơng thay đổi tương tác vật lý rigidbody2D.AddForce(Vector2 f): phương thức tác dụng lực vào đối tượng Hoặc bạn tham khảo chi tiết, thuộc tính phương thức https://docs.unity3d.com/Documentation/ScriptReference/Rigidbody2D.html Sau thêm thành phần vật lý vào, nhấn nút play để xem demo, ta thấy đối tượng từ từ rơi xuống (do Gravity scale > 0) Tương tự, ta thêm thành phần vật lý cho đối tượng Ground, đặt thuộc tính cho làIs Kinematic để làm Chú ý: Để có tác dụng cho tất Prefab, sau thêm thay đổi thuộc tính nào, ta nhấn Apply b Thành phần xử lý va chạm Ở Hierarchy, chọn đối tượng MainCharacter (đối tượng cần thêm) / Menu /Component / Physics 2D / Circle Collider 2D Đối tượng có thêm thuộc tính Collider: Ta chọn tâm bán kính để xác định vùng xử lý va chạm Thuộc tính: Is Trigger: chọn đối tượng dùng để xác định va chạm mà không ảnh hưởng tác động vật lý Kết ta thấy sau: Tiếp theo ta tiến hành thêm thành phần Collider cho đối tượng Ground, lần ta chọn Box Collider 2D thay Circle Collier 2D Các thuộc tính tương tự, ta chỉnh sửa hình chữ nhật để xác định vùng va chạm Chú ý: ta chọn Circle Collider 2D cho đối tượng MainCharacter để tránh trường hợp (cái đối tượng Ground, có độ cao không đều) nhấp nhô dẫn đến không di chuyển nhân vật MC hay gọi bị Stuck Bây ta nhấn nút play để test thấy đối tượng rơi xuống, gặp dãy đối tượng Ground đứng lại, đối tượng bị nghiêng (Ta tưởng tượng có bánh xe hình tròn rơi xuống mặt đất, lăn :D) Để tránh đối tượng nghiêng tick vào thuộc tính Fixed Angle nhân vật MainCharacter Ta tìm hiểu thêm phương thức: void FixedUpdate() { } > Các tính tốn, tương tác vật lý, đặt hàm này, ví dụ AddForce, etc (Chi tiết http://docs.unity3d.com/Documentation/ScriptReference/MonoBehaviour.FixedUpdate.html) void OnCollisionEnter2D(Collision2D other) { } > Hàm gọi có hai đối tượng va chạm void OnTriggerEnter2D(Collider2D other) { } > Hàm gọi có hai đối tượng va chạm nhau, có hai đối tượng Trigger Các bạn tham khảo thêm chi tiết nhiều hàm khác đây: http://docs.unity3d.com/Documentation/ScriptReference/MonoBehaviour.html Sau thêm phần tính tốn va chạm vật lý, ta cập nhập lại điều khiển đối tượng cách sử dụng tác dụng vật lý để làm đối tượng di chuyển, nhảy Khai báo thêm hai thuộc tính movingForce jumpForce MainCharacterBehavior để lưu trữ giá trị lực nhảy di chuyển: Ở hàm Fixed Update: Bây bạn xử lý cho đối tượng nhảy lên nhấn nút up/down Vậy biết cách thêm sử dụng thành phần vật lý xử lý va chạm, phần ta tìm hiểu tiếp cách hiển thị text, thông tin cách chuyển chơi Hay chuyển Scenes Link phần tiếp theo: https://www.facebook.com/notes/hội-lập-trình-viên-game-đà- nẵng/làm-game-2d-bằng-unity-phần-6-text-particle-system-và-chuyển-đổi-mànchơi/247194832119453 ... nhảy di chuyển: Ở hàm Fixed Update: Bây bạn xử lý cho đối tượng nhảy lên nhấn nút up/down Vậy biết cách thêm sử dụng thành phần vật lý xử lý va chạm, phần ta tìm hiểu tiếp cách hiển thị text, thơng... xác định vùng xử lý va chạm Thuộc tính: Is Trigger: chọn đối tượng dùng để xác định va chạm mà không ảnh hưởng tác động vật lý Kết ta thấy sau: Tiếp theo ta tiến hành thêm thành phần Collider... https://docs .unity3 d.com/Documentation/ScriptReference/Rigidbody2D.html Sau thêm thành phần vật lý vào, nhấn nút play để xem demo, ta thấy đối tượng từ từ rơi xuống (do Gravity scale > 0) Tương tự, ta thêm thành phần vật lý cho đối tượng

Ngày đăng: 02/10/2019, 21:23

TỪ KHÓA LIÊN QUAN

w