Làm thế nào để tạo một trò chơi nền tảng Unity cơ bản

Trong phần 1 của chúng tôi về cách tạo trò chơi nền tảng cơ bản thống nhất, chúng tôi đã thực hiện các bước tạo nhân vật cơ bản của bạn, thêm vật lý, nền tảng và đầu vào chuột. Trong phần tiếp theo này, chúng ta sẽ xem xét cách thêm các nền tảng thủ tục, một menu trò chơi và một số tài nguyên để tìm các mô hình và các trình bổ sung Unity bổ sung mà bạn có thể sử dụng trong các dự án trong tương lai.

Tạo nền tảng thủ tục

Vì vậy, trong phần một của hướng dẫn này, chúng tôi vừa tạo một nền tảng cơ bản mà nhân vật của bạn có thể bật lên ( và rơi vào doom của họ) - nhưng đối với một platformer thực sự, chúng tôi cần thêm các nền tảng bổ sung. Nhưng chúng tôi không muốn thêm một triệu nền tảng - chúng tôi muốn Unity tự động tạo nền tảng khi nhân vật của chúng tôi bị trả lại.

Đối với điều này, chúng ta cần một mẫu nền tảng - nếu không được gọi là prefab. Prefab là viết tắt của đúc sẵn, và nó chỉ đơn giản có nghĩa là tiền tạo ra - thường là một bản sao của một đối tượng trò chơi mà bạn có thể tái sử dụng hơn và hơn nữa. Thực tế, các prefabs có thể chứa các hệ thống phân cấp của các đối tượng trò chơi, có nghĩa là bạn có thể prefab toàn bộ khung cảnh của các đối tượng trò chơi.

Vì vậy, những gì bạn cần làm là tạo một thư mục tài sản mới có tên Prefabs, sau đó kéo và thả nền tảng của chúng tôi từ bảng phân cấp vào thư mục mới này. Prefabs sẽ được nhận biết trong bảng phân cấp bởi màu xanh lam.

Bây giờ để hướng dẫn Unity tạo các nền tảng thủ tục, chúng ta cần tạo một kịch bản có tên GameManager và đính kèm nó vào máy ảnh. Các kịch bản của GameManager về cơ bản chứa các chỉ dẫn quan trọng cho động cơ để chuyển tiếp sang trò chơi - trong trường hợp này, nó sẽ tạo ra các nền tảng khi nhân vật của chúng ta nhảy cùng.

Lý do chúng tôi đính kèm nó vào máy ảnh là vì máy ảnh không bao giờ bị phá hủy, và nó vẫn không đổi - vì vậy kịch bản không bao giờ bị phá hủy và vẫn không đổi bằng cách gắn vào nó.

Đây là những gì cần phải được bao gồm trong kịch bản:

Để giải thích mã này một chút, chúng ta cần tạo một tham chiếu đến cả bảng prefab và hình cầu (ký tự của chúng ta), vì vậy bạn cần kéo và thả chúng vào các vị trí cụ thể trong trình soạn thảo của bạn.

Mã này cũng chứa ba biến riêng - các dòng bắt đầu bằng var riêng. Chúng sẽ khởi tạo (tham chiếu) bảng prefab theo các cách sau:

  • Ranh giới var riêng: float đặt một giới hạn trên trục y, vì vậy khi ký tự của chúng ta nhảy cao hơn ranh giới này, một bảng điều khiển mới sẽ được tạo.
  • Xoay var riêng: Quaternion; chỉ cần thêm một vòng quay cần thiết để khởi tạo các prefabs của chúng ta - tuy nhiên, chúng ta đang thêm rotation = Quaternion.identify; bởi vì điều này hướng dẫn động cơ không xoay đối tượng trò chơi. Đối tượng (các bảng prefab của chúng tôi) theo nghĩa đen sẽ hoàn toàn phù hợp với thế giới.
  • Biến riêng cuối cùng lastPlatformPosition sẽ ghi nhớ và lưu vị trí của nền tảng cuối cùng dưới dạng vectơ 3D (về cơ bản, các nền tảng sẽ không biến mất phía sau bạn, vì vậy bạn có thể quay trở lại thông qua thế giới trò chơi nếu bạn muốn).

Trong bit tiếp theo của kịch bản, chúng ta sẽ thêm một kiểm tra cho mỗi frame cho dù hình cầu của chúng ta có nằm trên ranh giới (tạo ra nền tảng mới) hay không - nếu nhân vật của chúng ta nằm trên ranh giới, chúng ta sẽ nâng ranh giới giới hạn để tạo bảng điều khiển / nền tảng mới cao hơn lần cuối cùng.

Bước tiếp theo của chúng tôi là thêm mã xác định vị trí bảng điều khiển tiếp theo:

Chúng tôi đang sử dụng một vòng lặp while trong mã này để đảm bảo rằng các giá trị X và Z của vector (vị trí của nó trong thế giới trò chơi) không giống với các nền tảng trước đó - vì vậy các nền tảng được tạo theo cách thủ tục sẽ luôn tăng chiều cao.

Tất nhiên, chúng tôi không muốn những giá trị này được đặt đúng - một chút ngẫu nhiên là một điều tốt, nếu không chúng ta chỉ đang làm một cầu thang hoàn hảo. Vì vậy, chúng tôi đang sử dụng chức năng Random.Range, giữa các giá trị -1 và 2, để gọi các giá trị ngẫu nhiên cho X và Z. Bạn có thể chơi với những con số này một chút nếu bạn muốn đánh lừa.

Tạo menu trò chơi

Cho đến nay, chúng tôi đã tạo ra một trò chơi, nơi bạn có thể nhảy với chiều cao ngày càng tăng và di chuyển chuột xung quanh để điều khiển hướng. Vấn đề là nếu bạn rơi ra khỏi nền tảng, bạn sẽ chỉ rơi vô tận - chúng ta cần phải kịch bản trong một cái chết / game menu để bắt đầu lại.

Vì vậy, về cơ bản, chúng tôi sẽ viết một kịch bản để kiểm tra xem hình cầu (nhân vật) của chúng ta có rơi xuống dưới nền tảng đầu tiên của trò chơi hay không . Nếu vậy, tập lệnh sẽ tải một cảnh mới.

Bước đầu tiên của chúng tôi là kiểm tra xem quả cầu có giảm xuống dưới ngưỡng cụ thể hay không. Đi vào kịch bản GameManager chúng tôi đã thực hiện trước đó và tìm đến câu lệnh if của hàm cập nhật .

Chúng ta sẽ sử dụng câu lệnh if else ở đây, để kiểm tra xem vị trí của quả cầu của chúng ta có dưới -2, 0 đơn vị của vị trí Y hay không - nếu có, trò chơi chức năng riêng của chúng ta sẽ tồn tại, rằng đoạn mã sẽ tự giải thích.

Đó là bit cuối cùng của kịch bản là chức năng để sử dụng để xử lý một trò chơi trên trạng thái và tải trình đơn trò chơi của chúng tôi.

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Điều này cho phép lớp Ứng dụng của Unity - chúng ta có thể gọi hàm LoadLevel để đưa ra một cảnh mới, trong trường hợp này, đơn giản là trình đơn trò chơi của chúng ta - hãy nhớ rằng về cơ bản mọi thứ trong Unity là các cấp. Các menu chính (Start Game - Options - Credits - Etc.) về cơ bản chỉ là các cấp / cảnh với các bit của văn bản có thể nhấp. Loại giống như màn hình tải của Skyrim, eh? Họ chỉ là các mô hình 3D trong một không gian thế giới trống với một thanh tải.

Trong mọi trường hợp, chúng ta cần phải tạo một cảnh qua File> New Scene, và đặt cho nó tên Menu trong khi lưu nó. Sau đó, chúng ta sẽ thêm cả hai cảnh vào quá trình xây dựng. Điều này được thực hiện thông qua File> Build Settings .

Cảnh trình đơn của chúng tôi vẫn nên được mở, vì vậy chỉ cần nhấp vào nút Thêm hiện tại và thêm cảnh vào cài đặt xây dựng của bạn - làm điều này một lần nữa với cảnh cấp.

Khi chúng ta chết trong game, kịch bản chúng ta tạo ra sẽ chuyển đổi chúng ta từ cấp độ trò chơi sang cảnh menu.

Thêm nút bắt đầu cho người chơi

Bây giờ, chúng tôi có thể chơi trò chơi ở chế độ thử nghiệm, nhưng ngay bây giờ, người chơi không có cách nào để bắt đầu trò chơi nếu chúng tôi tải trò chơi này lên một nơi nào đó. Vì vậy, chúng ta cần tạo một menu trò chơi có nút để bắt đầu trò chơi.

Vì vậy, chuyển sang cảnh menu của trò chơi và thêm bit này vào máy ảnh ( trong bảng Inspector, hãy nhớ từ pt. 1 của hướng dẫn này?).

  • Cờ rõ ràng: Màu
  • Nền: # 000
  • Chiều rộng: 200
  • Chiều cao: 60

Điều này sẽ cho chúng ta một nền đen chắc chắn cho menu game - điều này được thực hiện trong các giá trị RGB, không phải hex - màu xanh lam sẽ là 001, màu xanh lá cây là 010, đỏ là 100, v.v. Tôi có thể giải thích điều này cho bạn, nhưng tất cả những gì bạn cần cần làm là bộ chọn Google RGB nếu bạn muốn một màu cụ thể.

Tiếp tục, chúng ta cần thêm nút của mình để bắt đầu trò chơi. Điều này được thực hiện thông qua các phần tử giao diện người dùng - về cơ bản, chúng ta có thể thêm các phần tử giao diện người dùng giống như cách chúng ta thêm các phần tử 3D, thông qua bảng phân cấp . Vì vậy, hãy tiếp tục và tạo nút Giao diện người dùng và bạn sẽ thấy một số phần tử mới trong bảng Phân cấp :

  • EventSystem
  • Tranh sơn dầu
  • Nút
  • Bản văn

Để phá vỡ điều này - canvas là vùng chứa của chúng tôi cho tất cả các thành phần giao diện người dùng và chúng tôi có thể làm cho nó đáp ứng ( bằng cách đáp ứng nghĩa là kích thước màn hình, không đáp ứng như nó sẽ trả lời các câu hỏi bạn yêu cầu. Trong mọi trường hợp, chúng ta sẽ thay đổi vị trí của nút này:

  • Chuyển đổi chuyển đổi {Pos X: 0, Pos Y: 0, Pos Z: 0}
  • Chuyển đổi xoay chiều rộng {Chiều rộng: 200, Chiều cao: 60}

Để thực hiện điều này một chút thanh lịch hơn, bạn có thể xóa hình ảnh nguồn của nút và đặt màu cho nó. Và để thay đổi văn bản của nút, chỉ cần chỉnh sửa phần tử Text thành một cái gì đó như START GAME và cho nó một kích thước phông chữ khoảng 16.

Để làm cho nút có thể nhấp, chúng tôi sẽ thêm một hàm vào tập lệnh UIController trong phần tử Nút . Chỉ cần thêm đoạn mã dưới đây:

Áp dụng chức năng này cho các thiết lập Inspector của nút, và trong các thiết lập thành phần Button (Script), chúng ta chỉ cần thêm một hàm thực thi khi người chơi nhấn nút Start của chúng ta. Vì vậy, chỉ cần thêm một chức năng cho sự kiện On Click (), và kéo / thả nút Start Game vào trường đầu vào. Cuối cùng, chọn hàm mới được tạo từ kịch bản UIController ( UIController.StartGame)

Chúng tôi có thể áp dụng chức năng này trong cài đặt Thanh tra của nút. Trong cài đặt thành phần Button (Script), chúng ta có thể thực hiện một hàm bất cứ khi nào một người chơi nhấp vào nó. Đối với điều này, chúng tôi thêm một chức năng mới cho sự kiện On Click (), bằng cách nhấp vào biểu tượng + . Bây giờ chúng ta có thể kéo và thả chính nút đó vào trường nhập. Sau đó, chúng ta chọn hàm chúng ta vừa viết từ kịch bản UIController (UIController.StartGame).

Cách xuất / xuất bản dưới dạng trò chơi trình duyệt WebGL

Mở cài đặt bản dựng và chọn WebGL làm nền tảng mục tiêu của bạn. Bây giờ hãy nhấp vào nút Chuyển nền tảng và cuối cùng, nhấp vào nút Xây dựng và đặt tiêu đề cho trò chơi của bạn. Sau khi nó được xây dựng, nó sẽ được xuất / lưu dưới dạng tệp .HTML, có thể được mở / xem trong bất kỳ trình duyệt hỗ trợ WebGL nào. Mặc dù nếu bạn muốn xuất bản trò chơi của mình, có hai phương pháp để đạt được điều này:

  • Tải trò chơi của bạn lên một số loại tệp lưu trữ (Dropbox, Google Drive, v.v.), sau đó chia sẻ liên kết. Điều này hữu ích cho các bản trình diễn nhỏ mà bạn muốn hiển thị cho bạn bè hoặc khách hàng tiềm năng ( trang web cổng thông tin trò chơi sẽ mua trò chơi của bạn hoặc thiết lập doanh thu quảng cáo với bạn).
  • Tải trò chơi của bạn lên máy chủ FTP mà bạn sở hữu và nhúng nó vào