Hướng dẫn làm máy bay tự bắn đạn trong unity

Bạn là người có niềm đam mê với công việc lập trình viên game chuyên nghiệp và bạn đang phân vân vì không biết nên bắt đầu nó từ nền tảng nào? Vậy còn lo ngại gì mà không tham khảo ngay thiế kế app thương mai điện tử Unity là gì – lập trình phổ biến nhất trong game qua thông tin dưới đây. Vậy làm thế nào để chúng ta có thể thiết kế app thương mại điện tử ? Hãy cùng Mevivu tìm câu trả lời cho bài viết này .

Định nghĩa thiết kế app thương mại điện tử Unity là gì?

Lập trình Unity 2D và 3D được lập trình dựa vào 3 ngôn ngữ chính là C#, Boo và UnityScript. Thông thường, ngôn ngữ chính mà lập trình viên Unity sử dụng phổ biến nhất hiện nay là C#.

Đến đây, chắc hẳn nhiều bạn đọc đang phân vân và không biết tại sao Unity lại được sử dụng để thiết kế game rồi mà vẫn còn phải biết rõ những lập trình ở phía trên? Có thể bạn chưa biết rằng, Unity có phần hạn chế lập trình nằm ở phần kéo thả nên các lập trình trên được áp dụng như phương pháp bổ trợ.

Theo dõi ví dụ sau: Bạn đã biết đến trò chơi Planes đây là một sản phẩm được tạo ra bởi sinh viên. Trò chơi này được lập trình với thao tác đơn giản là bắn máy bay, ngoài công việc kéo thả các giao diện tại main menu, đặt nhân vật và khung nền,… thì nó còn được thực hiện dựa trên phương pháp drag and drop.

Những hiệu ứng bên trong trò chơi sẽ tự động lặp đi lặp lại như bầu trời của nền và đi lùi liên tục nhằm tạo ra các hiệu ứng máy bay đang di chuyển, vụ nổ, hoặc bắn đạn,… Chính vì vậy, bạn không thể pick mãi 1 đối tượng rồi tiến hành thả liên tục trên đó cũng như cảnh chỉnh mãi bằng tay. Bởi đây là một trong những hiệu ứng tự động và cũng là cách duy nhất mà bạn cần phải lập trình.

Hướng dẫn làm máy bay tự bắn đạn trong unity

Ưu điểm và nhược điểm của thiết kế app thương mại điện tử Unity

Ưu điểm của việc sử dụng Unity 3D:

Unity là ứng dụng tốt nhất để phát triển trò chơi. Nó rất hiệu quả trong khi dựng cảnh 2D và 3D. Trong thời đại này, Unity cũng có thể được sử dụng để kết xuất hình ảnh 3D. Chất lượng cung cấp cũng tương đối tốt so với các ứng dụng khác.

  • Unity là tuyệt vời để phát triển đa nền tảng và trò chơi đa nền tảng. Các nền tảng phát triển chéo đang có xu hướng nhiều ngày nay. Việc này thực sự tốn thời gian và đòi hỏi nhiều nỗ lực để phát triển các ứng dụng gốc.
  • Kho tài sản cũng được cho là tuyệt vời khi so sánh với các nền tảng khác. Về cơ bản, hỗ trợ công nghệ cho Unity là hiệu quả. Các thành viên hỗ trợ kỹ thuật cũng có tay nghề cao và họ có thể được tin cậy trong trường hợp có bất kỳ vấn đề kỹ thuật nào.
  • Trong trường hợp nền tảng trực quan, Unity là tuyệt vời. Nhưng chúng tôi không thể kháng nghị như vậy trong trường hợp nền tảng không trực quan. Nó có thể khác nhau về ứng dụng và cách sử dụng của ứng dụng.
  • Công cụ trò chơi Unity cũng dễ sử dụng hơn so với nhiều công nghệ khác. Có rất nhiều công nghệ phức tạp khác trở nên khó khăn hơn khi chúng ta sử dụng. Unity là một ngoại lệ ở đây.
  • Mặc dù không phải là mã nguồn mở, chi phí là rất ít khi so sánh với tất cả các đối thủ cạnh tranh khác của nó. Hiệu quả chi phí là một trong những lợi thế chính của việc sử dụng Unity.

Nhược điểm của việc sử dụng Unity:

  • Tài liệu về một số tính năng đã khá lỗi thời và trong một số trường hợp, nó hoàn toàn không tồn tại.
  • Ngay cả những công nghệ như kết xuất kết cấu, trình biên dịch và hỗ trợ bộ đệm stencil vốn phổ biến trong nhiều công cụ miễn phí vẫn nằm sau bức tường phí 1500 đô la.
  • Giấy phép Unity 3D Pro không mang lại tất cả các tính năng cho thiết bị di động.
  • Do đó, cần phải đầu tư thêm 1500-3000 đô la cho giấy phép Mobile Pro, điều này có vẻ khá xa xỉ.

    Phiên bản Mono đã lỗi thời (trên thực tế là cổ) dẫn đến việc nhà phát triển phải chống lại GC khi dự án đạt đến một quy mô nhất định. Bây giờ tên lửa của chúng ta có thể bắn ra đạn, việc chúng ta cần làm tiếp theo đó là phá huỷ các vật thể va chạm với tên lửa hoặc va chạm với đạn được bắn từ tên lửa.

    Mình sẽ tạo một đối tượng mới được sử dụng làm mục tiêu (Là các thiên thạch).

    Từ cửa sổ Project, chọn (Create Sprites | Square)

    Đổi tên mục tiêu sprite mới này.

    Kéo và thả sprite này vào màn hình scene.

    Hướng dẫn làm máy bay tự bắn đạn trong unity

    Điều này sẽ tạo ra một đối tượng mới trong cửa sổ scene; Chúng ta tiến hành đổi tên đối tượng mới này.

    Thêm một BoxCollider2D vào đối tượng này (tức là, chọn Components | Physics2D | BoxCollider2D).

    Khi thêm thành phần vật lí cho đối tượng có nghĩa là hiện tại đối tượng của chúng ta có thể va chạm với những đối tượng khác.

    Bây giờ chúng ta sẽ tạo một tag mới cho đối tượng này. Tag này sẽ giúp xác định từng đối tượng trong scene và để xem đối tượng mà viên đạn (hoặc tên lửa) đang va chạm.

    Chọn đối tượng thiên thạch trong cửa sổ hierarchy. Trong cửa sổ Inspector, nhấp vào menu thả xuống có tên Untagged như được mô tả trên hình tiếp theo.

    Hướng dẫn làm máy bay tự bắn đạn trong unity

Từ menu kéo xuống lựa chọn option “Add tag…”.

Hướng dẫn làm máy bay tự bắn đạn trong unity

Trong cửa sổ mới, nhấp vào nút + nằm bên dưới nhãn “Tags/List is Empty”.

Hướng dẫn làm máy bay tự bắn đạn trong unity

Đặt tên cho tag của bạn (tức là, mục tiêu), sử dụng trường ở bên phải của nhãn Tag 0.

Hướng dẫn làm máy bay tự bắn đạn trong unity

Nhấn phím Enter/Return trên bàn phím để lưu tag mới của bạn. Chọn lại mục tiêu đối tượng thiên thạch trong cửa sổ hierarchy, trong inspector , chọn tag mà bạn vừa tạo ra.

Hướng dẫn làm máy bay tự bắn đạn trong unity

Cuối cùng nhưng không kém phần quan trọng, chúng ta sẽ tạo một prefab từ mục tiêu này bằng cách kéo và thả mục tiêu đối tượng vào cửa sổ Project.

Tiếp theo, chúng ta tạo một tập lệnh mới sẽ được liên kết với viên đạn (hoặc tên lửa), do đó, khi va chạm với mục tiêu, mục tiêu này sẽ bị phá hủy (dựa trên tag của nó).

Chúng ta tạo một tập lệnh mới có tên Bullet: từ cửa sổ Project, chọn Create | C # scripts. Thêm đoạn code sau đây vào nó:

void OnCollisionEnter2D(Collision2D coll)

{ if (coll.gameObject.tag == "target") { Destroy (coll.gameObject); Destroy (gameObject); } }

Trong đoạn code bên trên ta thực hiện một số tác vụ như sau:

  • Phát hiện các vật thể va chạm với viên đạn.
  • Khi điều này xảy ra, kiểm tra xem đối tượng này có phải là mục tiêu không; nếu đây là mục tiêu, mục tiêu này sau đó bị phá hủy.
  • Viên đạn cũng bị phá hủy trong trường hợp này.

Chúng ta lưu tập lệnh có tên Bullet và kiểm tra xem nó có lỗi hay không. Nếu không có lỗi, Tiến hành kéo và thả nó vào prefab có tên Bullet, trong cửa sổ Project.

Tiếp theo chúng ta sẽ cần thêm một sự va chạm vào prefab Bullet của mình, để nó thực sự va chạm với các đối tượng khác:

Chọn prefab “bullet”.

Hướng dẫn làm máy bay tự bắn đạn trong unity

Từ menu trên cùng, chọn Components | Physics2D | BoxCollider2D.

Bây giờ bạn có thể kiểm tra trò chơi của mình:

Hướng dẫn làm máy bay tự bắn đạn trong unity

Di chuyển đối tượng thiên thạch ngay phía trên tên lửa, như được minh họa trong hình tiếp theo.

Nhấn phím cách và kiểm tra xem, khi va chạm giữa viên đạn và mục tiêu, cả hai vật thể đều bị phá hủy.

Lưu ý rằng vì bạn sẽ bắn một số viên đạn, chúng ta có thể chọn phá hủy một viên đạn sau 10 giây (trước thời gian này nó sẽ phải bắn trúng mục tiêu nếu không viên đạn sẽ tự biến mất sau 10s), bằng cách sửa đổi tập lệnh Bullet như sau:

void Start () { Destroy (gameObject, 10); }

Bạn có thể kiểm tra để thấy rằng sau 10 giây viên đạn có bị phá hủy hay không.

Trước khi tiếp tục, các bạn lưu lại scene này lại. Bạn chọn (File | Save Scene As) từ menu trên cùng và lưu lại với tên level1. Bạn cũng có thể lưu dự án của mình (File | Save project).

Tiếp theo, chúng ta sẽ chỉ rõ 2 loại mục tiêu khác nhau; đó là: một mục tiêu di chuyển sẽ di chuyển xuống dưới và người chơi sẽ phải tránh hoặc tiêu diệt.

Trong cửa sổ project, Chúng ta tiến hành sao chép prefab “target” mà chúng ta vừa tạo (nghĩa là chọn prefab “target” và nhấn CTRL + D). Đổi tên prefab vừa tạo thành move_target. Chọn prefab move_target trong cửa sổ hierarchy và thêm thành phần RigidBody2D vào nó (nghĩa là chọn Component | Phisics2D | RigidBody2D).

Trong cửa sổ Inspector, đặt thuộc tính Gravity Scale (cho thành phần Rigidbody2D) thành 0, như được minh họa trên hình tiếp theo. Điều này là để đối tượng không rơi vô thời hạn (vì nó là chế độ xem từ trên xuống)

Hướng dẫn làm máy bay tự bắn đạn trong unity

Tiếp theo, chúng ta sẽ tạo một tập lệnh C# để liên kết với move_target nhầm điều chỉnh vận tốc rơi xuống của move_target. Tạo tập lệnh C # mới có tên là MoveTarget. Thêm dòng code sau vào function “start” để điều chỉnh vận tốc ban đầu. void Start () { GetComponent ().velocity = Vector2.down * 10; }

Trong đoạn code trên, chúng ta truy cập vào thành phần Rigidbody2D của đối tượng được liên kết với tập lệnh này (đây sẽ là mục tiêu di động), sau đó đặt vận tốc rơi xuống của đối tượng.

Bây giờ bạn có thể lưu tập lệnh của mình, kiểm tra xem nó không có lỗi và kéo và thả tập lệnh vào prefab có tên là move_target.

Để chúng tôi có thể kiểm tra cảnh, vui lòng kéo và thả prefab move_target vào chế độ xem Cảnh và phát cảnh, bạn sẽ thấy mục tiêu cụ thể này di chuyển xuống dưới.