Unity https://dongthoigian.net/cong-nghe-moi/unity/ Sun, 26 Jun 2022 03:17:17 +0000 vi hourly 1 https://wordpress.org/?v=6.7.2 https://dongthoigian.net/wp-content/uploads/2025/02/cropped-dongthoigian_huedc-32x32.png Unity https://dongthoigian.net/cong-nghe-moi/unity/ 32 32 241113670 Unity – Vật liệu và Shader https://dongthoigian.net/unity-vat-lieu-va-shader/ https://dongthoigian.net/unity-vat-lieu-va-shader/#respond Sun, 26 Jun 2022 03:12:57 +0000 https://dongthoigian.net/?p=14257 Unity Các hệ thống này trải qua một quá trình kết xuất riêng biệt;

The post Unity – Vật liệu và Shader appeared first on Dongthoigian.net.

]]>
Trong chương này, chúng ta sẽ tìm hiểu sơ lược về vật liệu và bộ tạo bóng. Để hiểu rõ hơn, chúng tôi sẽ tạo một Dự án 3D mới thay vì một Dự án 2D hiện tại của chúng tôi. Điều này sẽ giúp chúng tôi thấy những thay đổi khác nhau.

Khi bạn đã tạo xong dự án mới, hãy chuyển đến Hierarchy và nhấp chuột phải, và chuyển đến 3D Object → Cube . Điều này sẽ tạo ra một khối mới ở giữa cảnh. Bạn có thể nhìn xung quanh khối lập phương bằng cách giữ chuột phải và kéo chuột trong Chế độ xem cảnh. Bạn cũng có thể phóng to và thu nhỏ bằng con lăn.

Bây giờ, hãy nhấp vào khối lập phương và xem các thuộc tính của nó.

tạo một Dự án 3D mới thay vì một Dự án 2D

Thuộc tính dưới cùng dường như có một vật liệu Mặc định và một bộ đổ bóng Tiêu chuẩn .

Vật liệu là gì?

Trong Unity (và trong nhiều khía cạnh mô hình 3D), Vật liệu là một tệp chứa thông tin về ánh sáng của một vật thể với vật liệu đó. Lưu ý cách một quả cầu màu xám biểu thị vật liệu, với một số ánh sáng chiếu vào từ phía trên.

Bây giờ, đừng nhầm lẫn với tên; Vật chất không liên quan gì đến khối lượng, va chạm, hoặc thậm chí vật lý nói chung. Vật liệu được sử dụng để xác định cách ánh sáng ảnh hưởng đến một vật thể bằng vật liệu đó. Hãy để chúng tôi cố gắng tạo ra tài liệu của riêng mình. Nhấp chuột phải vào vùng Tài sản, đi tới Tạo → Vật liệu và đặt tên cho nó, chẳng hạn như “Vật liệu của tôi”.

tạo một Dự án 3D mới thay vì một Dự án 2D

Những đặc tính này không giống bất cứ thứ gì chúng ta đã nghiên cứu cho đến nay. Đó là bởi vì đây là những thuộc tính được lập trình trong bộ đổ bóng , không phải là vật liệu.

Vật liệu là thứ làm cho các đối tượng của bạn có thể nhìn thấy được ngay từ đầu. Trên thực tế, ngay cả ở chế độ 2D, chúng tôi cũng sử dụng một vật liệu đặc biệt không yêu cầu ánh sáng. Tất nhiên, Unity tạo ra và áp dụng nó cho mọi thứ cho chúng tôi, vì vậy chúng tôi thậm chí không nhận thấy nó ở đó.

Shader là gì?

Trình đổ bóng là một chương trình xác định cách mỗi pixel đơn lẻ được vẽ trên màn hình. Shader không được lập trình bằng C # hoặc thậm chí bằng ngôn ngữ OOPS. Chúng được lập trình bằng ngôn ngữ giống C gọi là GLSL, ngôn ngữ này có thể đưa ra hướng dẫn trực tiếp cho GPU để xử lý nhanh chóng.

Unity – Hệ thống hạt

Hệ thống Hạt giúp tạo ra một số lượng lớn các hạt có tuổi thọ nhỏ một cách hiệu quả. Các hệ thống này trải qua một quá trình kết xuất riêng biệt; chúng có thể tạo ra các hạt ngay cả khi có hàng trăm hoặc hàng nghìn đối tượng. Bây giờ, các hạt là một thuật ngữ không rõ ràng trong Hệ thống Hạt; một hạt là bất kỳ kết cấu, thể vật chất hoặc thực thể riêng lẻ nào được tạo ra bởi hệ thống hạt. Chúng không nhất thiết phải là những chấm lơ lửng trong không gian (mặc dù chúng có thể có!), Và chúng có thể được sử dụng cho rất nhiều tình huống khác nhau.

tạo một Dự án 3D mới thay vì một Dự án 2D

Một GameObject quản lý một Hệ thống hạt với thành phần Hệ thống hạt được đính kèm; hệ thống hạt không yêu cầu bất kỳ Tài sản nào để thiết lập, mặc dù chúng có thể yêu cầu các vật liệu khác nhau tùy thuộc vào hiệu ứng bạn muốn. Để tạo hệ thống hạt, hãy thêm Hệ thống hạt thành phần thông qua cài đặt Thêm thành phần hoặc đi tới Hệ thống phân cấp và chọn Tạo → Hiệu ứng → Hệ thống hạt . Điều này sẽ tạo ra một GameObject mới với hệ thống hạt được đính kèm.

tạo một Dự án 3D mới thay vì một Dự án 2D

Nếu bạn nhìn vào các thuộc tính của Hệ thống hạt, bạn sẽ thấy nó bao gồm nhiều mô-đun . Theo mặc định, chỉ có ba mô-đun đang hoạt động; Sự phát xạ, Hình dạng và Trình kết xuất . Các mô-đun khác có thể được kích hoạt bằng cách nhấp vào vòng tròn nhỏ bên cạnh tên của chúng.

tạo một Dự án 3D mới thay vì một Dự án 2D
tạo một Dự án 3D mới thay vì một Dự án 2D

Ở bên phải của một số giá trị, bạn có thể nhận thấy một mũi tên nhỏ màu đen. Điều này cho phép bạn kiểm soát nhiều hơn các giá trị của từng hạt riêng lẻ. Ví dụ: bạn có thể đặt Kích thước bắt đầu thành Ngẫu nhiên giữa hai Hằng số để yêu cầu Hệ thống hạt hiển thị các hạt ngẫu nhiên, có kích thước khác nhau như một vòi nước.

tạo một Dự án 3D mới thay vì một Dự án 2D

Unity – Sử dụng Asset Store

Asset Store là một trong những điểm mạnh nhất của Unity trên thị trường game engine; nó bao gồm một số lượng lớn nội dung, công cụ, tập lệnh và thậm chí toàn bộ dự án làm sẵn để bạn tải xuống.

Để sử dụng Cửa hàng tài sản, bạn cần có ID hợp nhất hợp lệ . Nếu bạn chưa có, bạn có thể tạo một tài khoản tại trang web Unity. Khi bạn tạo ID Unity, hãy nhấp vào tab Lưu trữ tài sản ở cùng hàng với Chế độ xem cảnh .

tạo một Dự án 3D mới thay vì một Dự án 2D

Sau khi đăng nhập, bạn sẽ có thể thấy tên người dùng của mình ở trên cùng bên phải.

Trong ví dụ này, chúng tôi sẽ nhập dự án Hướng dẫn bắn súng sinh tồn . Để làm như vậy, chúng tôi sẽ tìm kiếm nó trong tab và nhấp vào nội dung do Unity xuất bản.

tạo một Dự án 3D mới thay vì một Dự án 2D

Chúng tôi sẽ nhấn Tải xuống và để nó hoàn tất. Sau khi hoàn tất, nút Tải xuống sẽ chuyển thành Nhập ; nhấp vào nó một lần nữa để nhập Nội dung mới của bạn vào dự án hiện đang mở.

(Lưu ý – trong trường hợp cụ thể này, chúng tôi đang nhập một dự án đầy đủ; trong trường hợp Unity cảnh báo bạn về điều này, hãy tạo một dự án mới hoặc ghi đè dự án hiện có nếu bạn muốn. Cách nào cũng được.)

Một cửa sổ mới sẽ bật lên, liệt kê tất cả nội dung của Nội dung mới mà bạn vừa nhập. Tùy thuộc vào những gì bạn đã tải xuống, đây có thể là một tệp duy nhất hoặc một nhóm tệp hoặc toàn bộ cây với phân cấp các thư mục và tệp. Theo mặc định, Unity sẽ nhập tất cả các thành phần nội dung khi bạn nhấn Nhập , đây là những gì chúng tôi muốn. Bây giờ, chúng ta hãy nhấp vào Impor t để Unity thực hiện công việc của nó.

Cố gắng tải xuống nội dung mà không trả tiền là bất hợp pháp và luôn có khả năng nhiễm vi-rút, lỗi hoặc thiếu bản cập nhật.

The post Unity – Vật liệu và Shader appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/unity-vat-lieu-va-shader/feed/ 0 14257
Unity – Phần tử văn bản https://dongthoigian.net/unity-phan-tu-van-ban/ https://dongthoigian.net/unity-phan-tu-van-ban/#respond Sun, 26 Jun 2022 02:58:33 +0000 https://dongthoigian.net/?p=14247 Văn bản là một phần tử giao diện người dùng riêng biệt

The post Unity – Phần tử văn bản appeared first on Dongthoigian.net.

]]>
Giao diện người dùng văn bản có sẵn của Unity là một điểm khởi đầu tuyệt vời để người học bắt đầu thiết kế giao diện người dùng, ngay cả khi nó có xu hướng bị lu mờ bởi các nội dung do cộng đồng xây dựng mạnh mẽ và hiệu quả hơn.

Đối với mục đích của chúng tôi, phần tử Văn bản vani là quá đủ để bắt đầu.

Văn bản là một phần tử giao diện người dùng riêng biệt của riêng nó chủ yếu là do tính năng động của phần tử đó. Ví dụ: việc in điểm số hiện tại của người chơi ra màn hình yêu cầu giá trị số của điểm số phải được chuyển đổi thành một chuỗi, thường thông qua phương thức .toString () , trước khi nó được hiển thị. Để chèn một phần tử Giao diện người dùng văn bản, hãy chuyển đến Sơ đồ hệ thống cảnh, Tạo → Giao diện người dùng → Văn bản .

Unity - Phần tử văn bản

Một phần tử Văn bản mới sẽ hiển thị trong vùng Canvas của bạn. Nếu chúng ta xem xét các thuộc tính của nó, chúng ta sẽ thấy một số tùy chọn rất hữu ích.

Unity - Phần tử văn bản

Tuy nhiên, điều quan trọng nhất là trường Văn bản . Bạn có thể nhập những gì bạn muốn hộp văn bản nói trong trường đó, nhưng chúng tôi muốn tiến xa hơn thế.

Để thay đổi phông chữ của văn bản, trước tiên bạn phải nhập tệp phông chữ từ máy tính của mình vào Unity, dưới dạng Nội dung. Phông chữ không cần phải được gắn vào bất kỳ thứ gì trong cảnh và nó có thể được tham chiếu trực tiếp từ Nội dung.

Phần tử Text cũng có thể được truy cập thông qua script; đây là lúc tầm quan trọng của giao diện người dùng động . Thay vì bảng điều khiển, xuất ra số lần nút đã được nhấn, như trong chương trước; hãy để chúng tôi thực sự in nó ra trên màn hình trò chơi. Để làm như vậy, chúng ta sẽ mở tập lệnh ButtonBehaviour của mình từ bài học trước và thực hiện một vài thay đổi đối với nó.

using UnityEngine;
using UnityEngine.UI;
public class ButtonBehaviour : MonoBehaviour {
   int n;
   public Text myText;
   public void OnButtonPress(){
      n++;
      myText.text = "Button clicked " + n + " times.";
   }
}

Thay đổi đầu tiên mà chúng tôi đã làm là thêm một tham chiếu không gian tên mới. Tham chiếu này được sử dụng để làm việc với các thành phần giao diện người dùng của Unity và do đó chúng tôi thêm dòng sử dụng UnityEngine.UI .

Tiếp theo, chúng tôi tạo một biến Văn bản công khai, nơi chúng tôi có thể kéo và thả phần tử Giao diện người dùng Văn bản của mình vào.

Cuối cùng, chúng tôi truy cập văn bản thực mà phần tử giao diện người dùng này chứa bằng cách sử dụng myText.text .

Unity - Phần tử văn bản

Nếu chúng ta lưu tập lệnh của mình, bây giờ chúng ta sẽ thấy một vị trí mới cho phần tử Text UI trong ButtonManager của chúng ta. Chỉ cần kéo và thả gameObject có chứa phần tử Văn bản đó vào vị trí và nhấn nút Phát.

Unity - Phần tử văn bản

Unity – Thanh trượt

Trong chương này, chúng ta sẽ tìm hiểu về phần tử UI cuối cùng trong loạt bài này. Thanh trượt thường được sử dụng trong đó một giá trị nhất định phải được đặt giữa một cặp giá trị lớn nhất và nhỏ nhất. Một trong những cách sử dụng phổ biến nhất của điều này là cho âm lượng âm thanh hoặc độ sáng màn hình. Để tạo thanh trượt, hãy chuyển đến Tạo → Giao diện người dùng → Thanh trượt. Một phần tử Slider mới sẽ hiển thị trên cảnh của bạn.

Unity - Phần tử văn bản

Nếu bạn đi đến các thuộc tính của Slider này, bạn sẽ nhận thấy một loạt các tùy chọn để tùy chỉnh nó.

Unity - Phần tử văn bản

Chúng ta hãy thử tạo thanh trượt âm lượng từ thanh trượt này. Đối với điều này, hãy mở tập lệnh ButtonBehaviour (bạn có thể đổi tên ButtonManager GameObject vì nó chắc chắn làm được nhiều việc hơn là chỉ quản lý một nút bây giờ) và thêm một tham chiếu vào Slider. Chúng tôi cũng sẽ thay đổi mã xung quanh một lần nữa.

public class ButtonBehaviour : MonoBehaviour {
   int n;
   public Text myText;
   public Slider mySlider;
   void Update() {
      myText.text = "Current Volume: " + mySlider.value;
   }
}

Hiểu cách chúng tôi đang sử dụng phương pháp Cập nhật để cập nhật liên tục giá trị của myText.text.

Trong thuộc tính thanh trượt, chúng ta hãy chọn hộp “Số nguyên” và đặt giá trị tối đa thành 100.

Chúng tôi sẽ đặt màu của văn bản thông qua các thuộc tính của nó để có màu dễ nhìn hơn. Chúng ta hãy làm theo cùng một quy trình kéo Slider GameObject vào vị trí mới và nhấn chơi.

Unity - Phần tử văn bản

Bạn cũng nên khám phá và thử nghiệm với các điều khiển giao diện người dùng khác để xem cái nào hoạt động theo cách nào. Trong phần tiếp theo, chúng ta sẽ tìm hiểu về ánh sáng, vật liệu và bộ đổ bóng.

Unity – Shader (xem thêm)

The post Unity – Phần tử văn bản appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/unity-phan-tu-van-ban/feed/ 0 14247
Unity – Bắt đầu với giao diện người dùng https://dongthoigian.net/unity-bat-dau-voi-giao-dien-nguoi-dung/ https://dongthoigian.net/unity-bat-dau-voi-giao-dien-nguoi-dung/#respond Sun, 26 Jun 2022 02:47:40 +0000 https://dongthoigian.net/?p=14232 Canvas giống như một "bản vẽ" cho giao diện người dùng trên hiện trường,

The post Unity – Bắt đầu với giao diện người dùng appeared first on Dongthoigian.net.

]]>
Trong phần này, chúng ta sẽ tìm hiểu về quy trình thiết kế Giao diện người dùng hoặc các phần tử UI trong Unity. Điều này bao gồm thiết lập cơ sở, cũng như tổng quan về các yếu tố chung đi kèm với Unity.

Quy trình thiết kế giao diện người dùng trong Unity đi theo một con đường hơi khác so với con đường mà chúng tôi đã trải qua cho đến nay. Đối với người mới bắt đầu, các phần tử giao diện người dùng không phải là GameObject tiêu chuẩn và không thể được sử dụng như vậy. Các phần tử giao diện người dùng được thiết kế khác nhau; nút menu trông đúng ở độ phân giải 4: 3 có thể bị kéo giãn hoặc bị méo ở độ phân giải 16: 9 nếu không được thiết lập đúng cách.

Các phần tử giao diện người dùng trong Unity không được đặt trực tiếp vào hiện trường. Chúng luôn được coi là con của một GameObject đặc biệt được gọi là Canvas . Canvas giống như một “bản vẽ” cho giao diện người dùng trên hiện trường, nơi tất cả các phần tử giao diện người dùng sẽ hiển thị. Tạo một phần tử giao diện người dùng từ menu Tạo ngữ cảnh mà không có Canvas hiện có sẽ tự động tạo một phần tử.

Unity - Bắt đầu với giao diện người dùng

Bây giờ chúng ta hãy xem Canvas GameObject để biết về các thành phần mới bổ sung

Unity - Bắt đầu với giao diện người dùng

Các Rect Biến đổi ở đầu dường như có nhiều tài sản mới mà một GameObject tiêu chuẩn của Biến đổi không có.

Điều này là do trong khi Biến đổi của GameObject bình thường mô tả một điểm tưởng tượng trong không gian 3D, thì RectTransform xác định một hình chữ nhật tưởng tượng . Điều này có nghĩa là chúng ta cần các thuộc tính bổ sung để xác định chính xác vị trí của hình chữ nhật, kích thước của nó và cách nó được định hướng.

Chúng ta có thể thấy một số thuộc tính tiêu chuẩn của hình chữ nhật như Chiều cao và Chiều rộng, cũng như hai thuộc tính mới được gọi là Anchors . Neo là các điểm mà các thực thể khác có thể “khóa” trong Canvas. Điều này có nghĩa là nếu một phần tử giao diện người dùng (ví dụ, một nút) được cố định vào Canvas ở bên phải, việc thay đổi kích thước Canvas sẽ đảm bảo rằng Nút luôn ở bên phải tương đối của Canvas. Theo mặc định, bạn sẽ không thể sửa đổi hình dạng của vùng canvas và nó sẽ là một hình chữ nhật tương đối khổng lồ xung quanh cảnh của bạn.

Unity - Bắt đầu với giao diện người dùng

Tiếp theo là Thành phần Canvas . Đây là thành phần chính chứa một số tùy chọn phổ biến về cách giao diện người dùng được vẽ.

Unity - Bắt đầu với giao diện người dùng

Tùy chọn đầu tiên chúng ta thấy là Chế độ kết xuất . Thuộc tính này xác định phương pháp được sử dụng để vẽ Canvas lên khung nhìn của trò chơi.

Chúng tôi có ba tùy chọn trong danh sách thả xuống. Hãy để chúng tôi tìm hiểu về các tùy chọn trong các phần tiếp theo của chúng tôi.

Không gian màn hình – Lớp phủ

Chế độ này là tiêu chuẩn nhất cho menu, HUD, v.v. Nó hiển thị giao diện người dùng trên tất cả mọi thứ khác trong cảnh, chính xác cách nó được sắp xếp và không có ngoại lệ. Nó cũng mở rộng giao diện người dùng một cách độc đáo khi kích thước màn hình hoặc cửa sổ trò chơi thay đổi. Đây là Chế độ kết xuất mặc định trong Canvas.

Không gian màn hình – Máy ảnh

Không gian màn hình – Máy ảnh tạo một mặt phẳng chiếu tưởng tượng, một khoảng cách đã đặt từ máy ảnh và chiếu tất cả giao diện người dùng lên đó. Điều này có nghĩa là sự xuất hiện của giao diện người dùng trong cảnh phụ thuộc nhiều vào cài đặt được sử dụng bởi máy ảnh; điều này bao gồm phối cảnh, trường nhìn, v.v.

Unity - Bắt đầu với giao diện người dùng

Không gian thế giới

Trong chế độ World Space, các phần tử giao diện người dùng hoạt động như thể chúng là các GameObject bình thường được đưa vào thế giới. Tuy nhiên, chúng tương tự như sprites, vì vậy chúng thường được sử dụng như một phần của thế giới trò chơi thay vì cho người chơi, như màn hình và màn hình trong trò chơi. Do tính chất này, bạn có thể sửa đổi trực tiếp các giá trị của Canvas RectTransform trong chế độ này.

Các Canvas Scaler là một tập hợp các lựa chọn duy nhất cho phép bạn điều chỉnh quy mô và sự xuất hiện của các yếu tố giao diện người dùng một cách dứt khoát hơn; nó cho phép bạn xác định cách các phần tử giao diện người dùng tự thay đổi kích thước khi kích thước của màn hình thay đổi. Ví dụ: các phần tử giao diện người dùng có thể giữ nguyên kích thước bất kể cũng như tỷ lệ với kích thước màn hình hoặc chúng có thể chia tỷ lệ theo Độ phân giải tham chiếu .

Graphics Raycaster chủ yếu giải quyết việc raycasting (liên kết đến Unity Documentation for Raycasting) các phần tử UI và đảm bảo các sự kiện do người dùng khởi tạo như nhấp chuột và kéo hoạt động chính xác

Unity – Nút

Trong chương này, chúng ta sẽ tìm hiểu cách chèn các phần tử giao diện người dùng vào cảnh của chúng ta và bắt đầu làm việc với chúng.

Hãy để chúng tôi bắt đầu với một nút . Để chèn một nút, nhấp chuột phải vào Phân cấp cảnh và đi tới Tạo → Giao diện người dùng → Nút . Nếu bạn không có Canvas và EventSystem hiện có, Unity sẽ tự động tạo một Canvas cho bạn, đồng thời đặt nút bên trong Canvas.

Unity - Bắt đầu với giao diện người dùng

Hãy nhớ rằng ở chế độ kết xuất Lớp phủ , là chế độ mặc định, kích thước của Canvas độc lập với kích thước của máy ảnh. Bạn có thể kiểm tra điều này bằng cách nhấp vào tab Trò chơi .

Unity - Bắt đầu với giao diện người dùng

Nếu bạn chơi cảnh, bạn sẽ nhận thấy nút đã có một số chức năng tiêu chuẩn như phát hiện khi con chuột đang di chuột qua nó và thay đổi màu sắc khi nhấn.

Nút yêu cầu chức năng thực sự hữu ích trong giao diện người dùng. Chức năng này có thể được thêm vào thông qua các thuộc tính của nó. Hãy để chúng tôi tạo một tập lệnh mới và gọi nó là ButtonBehaviour .

public class ButtonBehaviour : MonoBehaviour {
   int n;
   public void OnButtonPress(){
      n++;
      Debug.Log("Button clicked " + n + " times.");
   }
}

Chúng tôi đã thực hiện một phương pháp đơn giản ghi lại số lần chúng tôi đã nhấn nút.

Lưu ý – Phương pháp này phải được công khai; nó sẽ không được nhận thấy bởi chức năng của Nút nếu không. Hãy để chúng tôi tạo một GameObject trống và đính kèm tập lệnh này vào nó. Chúng tôi làm điều này bởi vì một nút sẽ không tự làm bất cứ điều gì; nó chỉ gọi phương thức được chỉ định trong tập lệnh của nó.

Unity - Bắt đầu với giao diện người dùng

Bây giờ, hãy đi vào thuộc tính của Nút và tìm thuộc tính OnClick () .

Unity - Bắt đầu với giao diện người dùng

Nhấn vào biểu tượng + trên tab dưới cùng và một mục mới sẽ hiển thị trong danh sách.

Unity - Bắt đầu với giao diện người dùng

Mục nhập này xác định đối tượng mà nút nhấn hoạt động trên đó và chức năng nào của tập lệnh của đối tượng đó được gọi. Do hệ thống sự kiện được sử dụng trong thao tác nhấn nút, bạn có thể kích hoạt nhiều chức năng chỉ bằng cách thêm chúng vào danh sách.

Kéo và thả GameObject trống, chứa tập lệnh ButtonManager mà chúng tôi đã tạo, vào vị trí Không có (Đối tượng) .

Unity - Bắt đầu với giao diện người dùng

Điều hướng danh sách thả xuống Không có chức năng và tìm phương pháp OnButtonPress của chúng tôi . (Hãy nhớ rằng nó có thể được đặt tên bất cứ thứ gì bạn muốn, OnButtonPress chỉ đơn giản là một quy ước đặt tên được tiêu chuẩn hóa.) Bạn nên tìm nó trong phần ButtonBehaviour . Nếu bạn chơi trò chơi ngay bây giờ, bạn có thể kiểm tra nút và chắc chắn đủ, giao diện điều khiển sẽ in ra bạn đã nhấn nút bao nhiêu lần.

Unity – Phần tử văn bản (xem thêm)

The post Unity – Bắt đầu với giao diện người dùng appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/unity-bat-dau-voi-giao-dien-nguoi-dung/feed/ 0 14232
Unity – Coroutines https://dongthoigian.net/unity-coroutines/ https://dongthoigian.net/unity-coroutines/#respond Fri, 24 Jun 2022 03:42:19 +0000 https://dongthoigian.net/?p=14214 phương thức GetComponent , phương thức này trả về thành phần phù hợp đầu tiên mà nó phát hiện.

The post Unity – Coroutines appeared first on Dongthoigian.net.

]]>
Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity. Chúng ta hãy xem xét dòng mã được hiển thị bên dưới để hiểu về coroutines là gì.

IEnumerator MyCoroutineMethod() {
   // Your code here…
   
   yield return null;
}

Nói chung, nếu bạn gọi một hàm trong Unity (hoặc C #, thực sự), hàm sẽ chạy từ đầu đến cuối. Đây là những gì bạn sẽ coi là hành vi “bình thường” khi có liên quan đến mã của bạn. Tuy nhiên, đôi khi chúng tôi muốn cố tình làm chậm một chức năng hoặc làm cho nó chờ lâu hơn khoảng thời gian tích tắc mà nó chạy. Một chương trình đăng quang có khả năng chính xác như vậy: một chương trình đăng quang là một chức năng có khả năng chờ và định thời gian cho quá trình của nó, cũng như tạm dừng hoàn toàn.

Chúng ta hãy xem xét một ví dụ để hiểu cách thức hoạt động của quy trình đăng ký. Giả sử chúng ta muốn tạo một hình vuông thay đổi màu của nó giữa màu đỏ và màu xanh lam trong khoảng thời gian 1 giây.

Để bắt đầu, chúng tôi tạo một sprite. Tiếp theo, tạo một tập lệnh mới và đặt tên là ColorChanger . Trong script này, chúng tôi nhận được một tham chiếu đến Sprite Renderer của sprite. Tuy nhiên, chúng tôi sẽ sử dụng một cách khác để lấy thành phần. Thay vì kéo và thả thành phần vào một vị trí như chúng ta đã làm cho đến nay, chúng ta sẽ yêu cầu mã phát hiện chính thành phần đó.

Điều này được thực hiện thông qua phương thức GetComponent , phương thức này trả về thành phần phù hợp đầu tiên mà nó phát hiện. Vì chúng tôi chỉ sử dụng một Sprite Renderer cho mỗi đối tượng, chúng tôi có thể sử dụng phương pháp này để tự động phát hiện và nhận tham chiếu đến trình kết xuất của chúng tôi mỗi lần.

Hãy nhớ rằng trình kết xuất có trách nhiệm làm cho hình vẽ thực sự hiển thị trên màn hình. Trình kết xuất có thuộc tính màu ảnh hưởng đến màu chung của hình vẽ; đây là giá trị sẽ được sửa đổi. Đặt giá trị Màu ở chế độ công khai sẽ cho phép chúng tôi chọn chúng thông qua trình chỉnh sửa trong chương trình chọn màu mặc định của hệ điều hành của bạn.

private SpriteRenderer sr;

public Color color1;
public Color color2;

void Start () {
   sr = GetComponent<SpriteRenderer>();
   StartCoroutine(ChangeColor());
}

IEnumerator ChangeColor() {
   
   while (true) {
      
      if (sr.color == color1)
         sr.color = color2;
      
      else
         sr.color = color1;
      
      yield return new WaitForSeconds(3);
   }
}

Bây giờ, chúng ta sẽ bẫy hàm coroutine của chúng ta trong một vòng lặp while.

Để tạo một chương trình điều tra trong C #, chúng ta chỉ cần tạo một phương thức trả về IEnumerator . Nó cũng cần một câu lệnh trả về lợi nhuận . Câu lệnh trả về lợi nhuận là đặc biệt; nó thực sự yêu cầu Unity tạm dừng tập lệnh và tiếp tục ở khung tiếp theo.

Có một số cách có thể được sử dụng để mang lại lợi nhuận; một trong số đó là tạo một thể hiện của lớp WaitForSeconds . Điều này khiến quy trình đăng quang phải chờ một khoảng thời gian nhất định trong thế giới thực trước khi tiếp tục.

Hãy để chúng tôi biên dịch mã của chúng tôi và quay trở lại Unity. Chúng tôi chỉ cần chọn màu sắc xen kẽ của chúng tôi và nhấn chơi. Đối tượng của chúng ta bây giờ sẽ chuyển đổi giữa hai màu trong khoảng thời gian 3 giây. Bạn có thể biến khoảng thời gian trở thành một biến công khai và cũng có thể điều chỉnh tần suất thay đổi màu sắc.

Coroutines được sử dụng rộng rãi cho các phương pháp hẹn giờ , giống như phương pháp chúng tôi vừa làm. Sự đa dạng của WaitForX phương pháp có mục đích riêng của họ. Coroutines cũng được sử dụng để chạy các quy trình “bên lề” tự chạy trong khi trò chơi chạy đồng thời. Điều này rất hữu ích, chẳng hạn, để tải các phần ngoài màn hình ở cấp độ lớn trong khi trình phát bắt đầu tại một điểm.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Unity – Bảng điều khiển

Bảng điều khiển là nơi chúng ta sẽ đọc kết quả đầu ra của Nhà phát triển . Các đầu ra này có thể được sử dụng để nhanh chóng kiểm tra các bit mã mà không cần phải cung cấp thêm chức năng để kiểm tra.

Có ba loại thông báo xuất hiện trong bảng điều khiển mặc định. Những thông báo này có thể liên quan đến hầu hết các tiêu chuẩn của trình biên dịch –

  • Lỗi
  • Cảnh báo
  • Tin nhắn

Lỗi

Lỗi là những vấn đề hoặc ngoại lệ mà sẽ ngăn chặn các mã chạy ở tất cả .

Cảnh báo

Cảnh báo là những vấn đề sẽ không ngăn mã của bạn chạy, nhưng có thể gây ra sự cố trong thời gian chạy.

Tin nhắn

Tin nhắn là kết quả đầu ra để truyền tải điều gì đó đến người dùng; chúng thường không làm nổi bật các vấn đề.

Chúng tôi thậm chí có thể yêu cầu Bảng điều khiển xuất ra các thông báo, cảnh báo và lỗi của riêng chúng tôi. Để làm như vậy, chúng ta sẽ sử dụng lớp Gỡ lỗi. Lớp Gỡ lỗi là một phần của MonoBehaviour, lớp này cung cấp cho chúng ta các phương thức để ghi thông báo vào Bảng điều khiển, khá giống với cách bạn tạo thông báo đầu ra bình thường trong các chương trình khởi động của mình.

Bạn có thể tìm thấy Bảng điều khiển trong tab được gắn nhãn phía trên vùng Nội dung.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Đầu ra của bảng điều khiển hữu ích hơn cho lập trình viên , không phải người dùng cuối hoặc người chơi.

Hãy để chúng tôi thử viết một tin nhắn đơn giản tới Bảng điều khiển. Điều này sẽ thông báo cho chúng tôi khi phím Space được nhấn. Đối với điều này, chúng tôi sẽ sử dụng phương thức Nhật ký , lấy một Đối tượng làm tham số, mà chúng tôi sẽ sử dụng một chuỗi trong đó.

Bạn có thể bắt đầu với một tập lệnh mới hoặc sửa đổi một tập lệnh hiện có.

void Update() {
   if (Input.GetKeyDown(KeyCode.Space))
      Debug.Log(“Space key was pressed!”);
}

Lưu, biên dịch và chạy mã này (tất nhiên bằng cách gắn nó vào GameObject), hãy thử nhấn phím cách.

Lưu ý – Quan sát rằng thông báo hiển thị ở cuối trình chỉnh sửa.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Nếu bạn nhấp vào tab Bảng điều khiển, bạn sẽ thấy thông báo của mình được in ra.

Tương tự, bạn cũng có thể xuất ra các cảnh báo bằng cách sử dụng phương thức LogWarning và các lỗi với phương thức LogErro r. Những điều này sẽ tỏ ra hữu ích để kiểm tra các đoạn mã nhỏ mà không thực sự phải triển khai chúng, như bạn sẽ thấy ở phần sau.

Unity – Giới thiệu về Âm thanh

Có một lý do tại sao trò chơi chú trọng vào âm thanh; nó là khá quan trọng để thêm giá trị thẩm mỹ cho trò chơi. Ngay từ tiếng Pong đầu tiên , người ta có thể nghe thấy tiếng bíp và tiếng bíp xen kẽ từ quả bóng đập vào mái chèo. Đó là một mẫu sóng vuông ngắn thực sự đơn giản vào thời điểm đó, nhưng bạn còn muốn gì hơn nữa từ ông tổ của tất cả các trò chơi điện tử?

Trong cuộc sống thực, nhiều thứ ảnh hưởng đến cách bạn cảm nhận âm thanh; tốc độ của đối tượng, loại kịch bản và nó đến từ hướng nào.

Có một số yếu tố có thể tạo ra tải trọng không cần thiết trên động cơ của chúng tôi. Thay vào đó, chúng tôi cố gắng tạo ra ý tưởng về cách âm thanh của chúng tôi sẽ hoạt động trong trò chơi của chúng tôi và xây dựng xung quanh điều đó. Điều này trở nên đặc biệt nổi bật trong các trò chơi 3D, nơi có 3 trục để giải quyết.

Trong Unity, chúng tôi có các thành phần chuyên dụng để cảm nhận và phát lại âm thanh. Các thành phần này kết hợp với nhau để tạo ra một hệ thống âm thanh đáng tin cậy, mang lại cảm giác tự nhiên cho trò chơi.

Unity cung cấp cho chúng ta một loạt các công cụ và hiệu ứng hữu ích như reverb, hiệu ứng Doppler, hiệu ứng và trộn thời gian thực, v.v. Chúng ta sẽ tìm hiểu về những công cụ này trong các chương tiếp theo.

Các thành phần âm thanh

Trong phần này, chúng ta sẽ tìm hiểu về 3 thành phần chính liên quan đến âm thanh trong Unity.

Nguồn âm thanh

Thành phần Nguồn âm thanh là thành phần chính mà bạn sẽ gắn vào GameObject để làm cho nó phát âm thanh. Nó sẽ phát lại một AudioClip khi được kích hoạt thông qua bộ trộn, thông qua mã hoặc theo mặc định, khi nó hoạt động. AudioClip chỉ đơn giản là một tệp âm thanh được tải vào Nguồn âm thanh. Nó có thể là bất kỳ tệp âm thanh tiêu chuẩn nào, chẳng hạn như .mp3, .wav, v.v. AudioClip cũng là một thành phần trong chính nó.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

AudioListener

AudioListener là thành phần lắng nghe tất cả âm thanh đang phát trong cảnh và chuyển nó đến loa của máy tính. Nó hoạt động giống như tai của trò chơi. Tất cả âm thanh bạn nghe được đều dựa vào vị trí của AudioListener này. Chỉ nên có một AudioListener để nó hoạt động bình thường. Theo mặc định, máy ảnh chính có Listener được gắn vào nó. Listener không có bất kỳ thuộc tính lộ diện nào mà nhà thiết kế muốn quan tâm.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Bộ lọc âm thanh

Đầu ra của Nguồn âm thanh hoặc đầu vào của Bộ nghe âm thanh có thể được sửa đổi với sự trợ giúp của Bộ lọc âm thanh. Đây là những thành phần cụ thể có thể thay đổi hồi âm, điệp khúc, lọc, v.v. Mỗi bộ lọc cụ thể đi kèm như một thành phần riêng của nó với các giá trị hiển thị để điều chỉnh âm thanh của nó.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Phát âm thanh

Hãy để chúng tôi thử tạo một nút phát âm thanh khi nó được nhấp vào. Để bắt đầu, chúng ta sẽ Tạo một sprite Circle và làm cho nó có màu đỏ.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Bây giờ, hãy để chúng tôi đính kèm Nguồn âm thanh vào sprite này.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Đối với đối tượng để phát âm thanh, chúng ta phải cung cấp cho nó một âm thanh. Hãy để chúng tôi sử dụng hiệu ứng âm thanh này cho mục đích của chúng tôi.

http://www.orangefreesounds.com/ding-sfx/

Tải xuống hiệu ứng âm thanh và kéo nó vào Nội dung.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Khi Unity nhập nội dung này dưới dạng tệp âm thanh, nội dung đó sẽ tự động được chuyển đổi thành Kẹp âm thanh . Do đó, bạn có thể kéo đoạn âm thanh này từ Nội dung trực tiếp vào khe Đoạn âm thanh trong Nguồn âm thanh của sprite của chúng tôi.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Sau khi bạn kéo đoạn âm thanh từ Nội dung trực tiếp vào khe Đoạn âm thanh trong Nguồn âm thanh của sprite của chúng tôi, hãy nhớ bỏ chọn “Phát khi thức tỉnh” trong thuộc tính Nguồn âm thanh; không làm như vậy sẽ làm cho âm thanh phát ngay khi trò chơi bắt đầu.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Bây giờ, chúng ta hãy xem mã của chúng ta. Tạo một tập lệnh mới có tên “BellSound” và mở nó lên.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Vì Nguồn âm thanh của chúng tôi được kiểm soát thông qua mã, nên trước tiên chúng tôi muốn tham chiếu đến nó. Chúng tôi sẽ sử dụng phương thức GetComponent như trước đây.

public class BellSound : MonoBehaviour {
   AudioSource mySource;
   // Use this for initialization
   void Start () {
      mySource = GetComponent<AudioSource>();
}

Bây giờ, chúng ta hãy thiết lập phương thức để phát hiện đối tượng đang được nhấp vào. MonoBehaviour chỉ cung cấp cho chúng tôi phương pháp chúng tôi cần cho nó, có tên là OnMouseDown. Phương thức này được gọi bất cứ khi nào con chuột nhấp trong phạm vi của một máy va chạm của gameObject đó.

Vì chúng tôi chưa gắn máy va chạm vào nút của mình, hãy để chúng tôi làm như vậy ngay bây giờ.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Chúng tôi sẽ không cần một Rigidbody cho cái này; chúng ta cũng không cần phải truy cập máy va chạm này bằng mã. Nó chỉ cần có ở đó để phương pháp hoạt động. Hãy để chúng tôi kiểm tra phương pháp này và xem nó có hoạt động không. Viết mã sau vào tập lệnh của bạn và đính kèm vào nút.

void OnMouseDown() {
   Debug.Log(“Clicked!”);
}

Sau khi bạn lưu tập lệnh và đính kèm, hãy chơi trò chơi. Nhấp vào nút sẽ xuất hiện một thông báo trong Bảng điều khiển.

Coroutines là công cụ hữu ích nhất khi tạo trò chơi trong Unity

Bây giờ bạn chỉ còn một bước nữa để phát âm thanh. Tất cả những gì bạn phải làm bây giờ là gọi phương thức Play trong phiên bản Nguồn âm thanh.

void OnMouseDown() {
   mySource.Play();
}

Lưu tập lệnh của bạn và chạy nó trong trò chơi. Nhấp vào nút và bạn sẽ nghe thấy âm thanh phát ra!

Lưu ý – Cân nhắc tạo một nút tăng cao độ mỗi khi bạn nhấp vào nó. Sử dụng mySource.pitch và một bộ đếm và xem liệu bạn có thể tìm ra nó hay không.)

Unity – Bắt đầu với giao diện người dùng (xem thêm)

The post Unity – Coroutines appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/unity-coroutines/feed/ 0 14214
Hiểu Prefabs và Instantiation https://dongthoigian.net/hieu-prefabs-va-instantiation/ https://dongthoigian.net/hieu-prefabs-va-instantiation/#respond Fri, 24 Jun 2022 03:19:16 +0000 https://dongthoigian.net/?p=14205 Prefabs giống như bản thiết kế của GameObject

The post Hiểu Prefabs và Instantiation appeared first on Dongthoigian.net.

]]>
Lập tức và phá hủy các đối tượng được coi là rất quan trọng trong quá trình chơi. Instantiating chỉ đơn giản có nghĩa là đưa vào sự tồn tại. Các vật phẩm xuất hiện hoặc “xuất hiện” trong trò chơi, kẻ thù chết, các yếu tố GUI biến mất và các cảnh được tải mọi lúc trong trò chơi. Biết cách loại bỏ những đồ vật không cần thiết một cách hợp lý và làm thế nào để mang những đồ vật bạn làm sau đó càng trở nên cần thiết hơn.

Đầu tiên chúng ta hãy hiểu prefabs là gì . Prefabs được coi là quan trọng để hiểu cách Instantiation hoạt động trong Unity.

Prefabs giống như bản thiết kế của GameObject. Theo một cách nào đó, Prefabs là một bản sao của GameObject có thể được sao chép và đưa vào một cảnh, ngay cả khi nó không tồn tại khi cảnh đó đang được tạo; nói cách khác, prefabs có thể được sử dụng để tạo động các GameObject . Để tạo một nhà lắp ghép, bạn chỉ cần kéo GameObject mong muốn từ hệ thống phân cấp cảnh của bạn vào Nội dung dự án 

Prefabs và Instantiation

Bây giờ, để khởi tạo một GameObject, chúng tôi gọi phương thức Instantiate () trong tập lệnh của chúng tôi. Phương thức này, được định nghĩa trong MonoBehaviour , lấy một GameObject làm tham số, vì vậy nó biết GameObject nào cần tạo / sao chép. Nó cũng có nhiều ghi đè khác nhau để thay đổi chuyển đổi của đối tượng mới khởi tạo, cũng như cách nuôi dạy con cái.

Hãy để chúng tôi thử tạo một hình lục giác mới bất cứ khi nào phím Space được nhấn.

Tạo một tập lệnh mới có tên là Instantiator và mở nó lên. Trong phương pháp Cập nhật , hãy nhập mã được cung cấp bên dưới. Ở đây, chúng tôi đang sử dụng phương thức GetKeyDown của lớp Đầu vào để kiểm tra xem người chơi có nhấn một nút cụ thể trong khung hình cuối cùng hay không. Vì chúng tôi muốn nó tiếp tục kiểm tra, chúng tôi đưa nó vào Cập nhật , chạy 60 lần mỗi giây. Phương thức GetKeyDown trả về true nếu phím được chỉ định bởi enum KeyCode (liệt kê tất cả các phím có thể có trên bàn phím tiêu chuẩn) được nhấn trong khung đó.

public class Instantiator : MonoBehaviour {
   public GameObject Hexagon;
   // Update is called once per frame
   void Update () {
      if (Input.GetKeyDown(KeyCode.Space)) {
         Instantiate(Hexagon);
      }
   }
}

Khai báo GameObject công khai ở trên cùng tạo ra một khe tương tự như chúng tôi đã tạo cho Rigidbody2D trong các bài học trước của chúng tôi. Tuy nhiên, vị trí này chỉ chấp nhận prefabs (trong thời gian biên tập) và gameObjects (trong thời gian chạy). Lưu tập lệnh và để nó biên dịch. Sau khi hoàn tất, hãy tạo một GameObject mới, trống bằng cách chuyển đến menu chuột phải phân cấp đối tượng của bạn và chọn Create Empty .

Prefabs và Instantiation

Đặt tên cho Đối tượng này một cái gì đó dễ nhận biết chẳng hạn như Đối tượng Instatiator và đính kèm tập lệnh mới tạo của chúng tôi vào nó. Trong khe hiển thị cho GameObject, hãy kéo nhà lắp ghép mà chúng tôi đã tạo.

Prefabs và Instantiation

Nếu chúng ta chạy trò chơi ngay bây giờ, nhấn phím cách sẽ tạo ra một đối tượng Hexagon mới giống với đối tượng chúng ta đã sử dụng để tạo nhà lắp ghép. Bạn có thể thấy mỗi hình lục giác được tạo trong hệ thống phân cấp đối tượng. Lý do bạn không thể thấy chúng hiển thị trong trò chơi là vì hiện tại, tất cả chúng đều đang được tạo chính xác một cái khác.

Prefabs và Instantiation

Trong bài học tiếp theo của chúng ta, chúng ta sẽ hiểu khái niệm về sự phá hủy đối tượng.

Unity – GameObject Destruction

Việc phá hủy GameObjects cũng quan trọng như việc khởi tạo. Trong chương này, chúng ta sẽ học cách tiêu diệt GameObjects.

May mắn thay, việc tiêu diệt GameObjects cũng dễ dàng như việc tạo ra chúng. Bạn chỉ cần một tham chiếu đến đối tượng sẽ bị hủy và gọi phương thức Destroy () với tham chiếu này là một tham số.

Bây giờ, chúng ta hãy thử tạo ra 5 hình lục giác sẽ tự phá hủy khi nhấn một phím được chỉ định. Hãy để chúng tôi tạo một tập lệnh mới có tên là HexagonDestroyer và mở nó trong Visual Studio. Chúng ta sẽ bắt đầu bằng cách tạo một biến KeyCode công khai . Mã khóa được sử dụng để chỉ định một phím trên bàn phím tiêu chuẩn và lớp Đầu vào trong các phương thức của nó sử dụng nó. Bằng cách đặt biến này ở chế độ công khai, như chúng ta đã làm với Rigidbody và Prefabs trước đây, chúng ta có thể làm cho nó có thể truy cập được thông qua trình chỉnh sửa. Khi biến được đặt ở chế độ công khai, chúng ta không cần các giá trị hardcode như “KeyCode.A” vào mã. Mã có thể được thực hiện linh hoạt với nhiều đối tượng tùy thích

public class HexagonDestroyer : MonoBehaviour {
   
   public KeyCode keyToDestroy;

   // Update is called once per frame
   void Update () {
      
      if (Input.GetKeyDown(keyToDestroy)) {
         Destroy (gameObject);
      }
   }
}

Quan sát cách chúng tôi sử dụng biến có tên “gameObject” (g nhỏ, viết hoa O) trong phương pháp. Biến gameObject mới này (thuộc loại GameObject ) được sử dụng để tham chiếu đến gameObject mà tập lệnh này được đính kèm. Nếu bạn đính kèm tập lệnh này trên nhiều đối tượng, tất cả chúng sẽ phản ứng theo cùng một cách bất cứ khi nào biến này có liên quan.

Tuy nhiên, đừng nhầm lẫn giữa hai điều này.

  • GameObject với chữ G và O viết hoa là lớp bao gồm tất cả các GameObject và cung cấp các phương thức tiêu chuẩn như Instantiate, Destroy và các phương thức để tìm nạp các thành phần.
  • gameObject với chữ g nhỏ và chữ O viết hoa là phiên bản cụ thể của GameObject, được sử dụng để tham chiếu đến gameObject mà tập lệnh này hiện được đính kèm.

Bây giờ chúng ta hãy biên dịch mã của mình và quay lại Unity. Bây giờ, chúng ta sẽ tạo một hình lục giác mới và đính kèm tập lệnh của chúng ta vào nó. Tiếp theo, nhấp chuột phải vào gameObject trong hệ thống phân cấp và chọn Nhân bản . Một sprite mới được tạo trong hệ thống phân cấp; bạn nên sử dụng công cụ Move để định vị lại nó. Lặp lại các bước để tạo các hình lục giác tương tự.

Prefabs và Instantiation
Prefabs và Instantiation

Nhấp vào từng hình lục giác và xem các thành phần tập lệnh của chúng. Bây giờ bạn có thể đặt các phím riêng lẻ để GameObject tự hủy khi phím đó được nhấn. Ví dụ: chúng ta hãy tạo 5 hình lục giác và đặt chúng để phá hủy khi nhấn các phím A, S, D, F và G.

Bạn có thể đặt cùng một phím trên nhiều hình lục giác và tất cả chúng sẽ tự hủy đồng thời khi phím được nhấn; đây là một ví dụ về việc sử dụng tham chiếu gameObject , bạn có thể sử dụng tham chiếu này để tham chiếu đến các đối tượng riêng lẻ bằng cách sử dụng tập lệnh mà không cần phải đặt chúng riêng lẻ.

Cùng một phím có thể được đặt trên nhiều hình lục giác và tất cả chúng sẽ tự hủy đồng thời khi phím được nhấn; đây là một ví dụ về việc sử dụng tham chiếu gameObject , bạn có thể sử dụng tham chiếu này để tham chiếu đến các đối tượng riêng lẻ bằng cách sử dụng tập lệnh mà không cần phải đặt chúng riêng lẻ.

Điều quan trọng là phải hiểu rằng phá hủy một GameObject không có nghĩa là một đối tượng sẽ vỡ tan hoặc phát nổ. Việc phá hủy một đối tượng sẽ đơn giản (và ngay lập tức) chấm dứt sự tồn tại của nó cho đến khi trò chơi (và mã của nó) có liên quan. Các liên kết đến đối tượng này và các tham chiếu của nó hiện đã bị hỏng và việc cố gắng truy cập hoặc sử dụng một trong hai đối tượng này thường sẽ dẫn đến lỗi và sự cố

Unity – Coroutines (xem thêm)

The post Hiểu Prefabs và Instantiation appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/hieu-prefabs-va-instantiation/feed/ 0 14205
Unity – Tương tác https://dongthoigian.net/unity-tuong-tac/ https://dongthoigian.net/unity-tuong-tac/#respond Thu, 23 Jun 2022 03:09:37 +0000 https://dongthoigian.net/?p=14185 Khi chúng ta coi mọi thành phần là một GameObject, chúng tôi nhận ra rằng có thể có hàng nghìn GameObject trong một cảnh,

The post Unity – Tương tác appeared first on Dongthoigian.net.

]]>
Các va chạm trong Unity được tách ra khỏi chính Sprite thực tế, được gắn vào như các thành phần riêng biệt và được tính toán riêng. Bây giờ chúng ta hãy tìm hiểu nguyên nhân đằng sau điều này.

Mọi thứ trong trò chơi của bạn đều là GameObject. Ngay cả các ô riêng lẻ tạo nên cấp độ của bạn cũng là GameObjects của chính chúng.

Khi chúng tôi coi mọi thành phần là một GameObject, chúng tôi nhận ra rằng có thể có hàng nghìn GameObject trong một cảnh, tương tác với nhau theo một cách nào đó. Bạn có thể tưởng tượng rằng nếu Unity thêm các va chạm vào từng GameObject, thì công cụ này sẽ không thực tế khi tính toán các va chạm cho mỗi một trong số chúng. Chúng tôi sẽ tiếp tục và thêm một “bức tường” đơn giản mà nhân vật người chơi của chúng tôi có thể va vào. Để làm như vậy, hãy tạo một sprite khác và mở rộng quy mô nó bằng công cụ Rect. Chúng tôi cũng sẽ cung cấp cho nó màu đỏ thông qua thuộc tính Color trong thành phần Sprite Renderer.

Unity - Tương tác

Bây giờ, đi tới Thêm thành phần trong Thanh tra và nhập vào “Box Collider 2D”. Bấm vào thành phần đầu tiên hiển thị và một thành phần mới sẽ xuất hiện.

Unity - Tương tác

Bạn sẽ thấy một đường màu xanh lục sáng trên chu vi của GameObject của bạn. Đây là ranh giới va chạm . Nó là thứ xác định hình dạng thực tế của các vật thể va chạm.

Lặp lại tương tự với GameObject có thể di chuyển của chúng tôi.

Tất nhiên, va chạm trong Unity không chỉ giới hạn ở các hộp. Chúng có thể có nhiều hình dạng và kích thước khác nhau và không nhất thiết phải là bản sao của các thông số của đối tượng.

Unity - Tương tác

Chúng cũng có thể có hình dạng đa giác.

Unity - Tương tác

Không có gì lạ khi thấy các nhà phát triển và nhà thiết kế sử dụng các hình dạng gần đúng trong ranh giới va chạm của họ để đơn giản hóa các máy va chạm của họ và tránh các tính toán không cần thiết cho động cơ. Chúng ta sẽ học cách tạo ra các hình dạng và kích thước khác nhau bằng máy va chạm của chúng ta ngay sau đây.

Bây giờ chúng ta đã có ranh giới va chạm, hãy chơi và xem nó hoạt động.

Unity - Tương tác

Bạn sẽ nhận thấy rằng đối tượng di chuyển của chúng ta không hoạt động bình thường. Chúng ta sẽ thảo luận về hành vi của đối tượng trong chương tiếp theo của chúng ta.

Thống nhất – kết nối Phần cứng

Vấn đề chính với các va chạm trong chương trước là với mã. Bây giờ chúng tôi sẽ sửa đổi trực tiếp các giá trị của vị trí của GameObject . Chúng tôi chỉ đơn giản là thêm một giá trị vào vị trí, nếu người chơi đang nhấn một phím. Chúng tôi cần một cách để làm cho người chơi di chuyển theo cách mà nó phản ứng đúng với các ranh giới và các GameObject khác.

Để làm được như vậy, chúng ta cần phải hiểu các cơ quan cứng là gì . Rigidbodies là các thành phần cho phép GameObject phản ứng với vật lý thời gian thực . Điều này bao gồm các phản ứng với lực và trọng lực, khối lượng, lực cản và động lượng. Bạn có thể đính kèm Rigidbody vào GameObject của mình bằng cách chỉ cần nhấp vào Thêm thành phần và nhập Rigidbody2D vào trường tìm kiếm.

Unity - Tương tác

Nhấp vào Rigidbody2D sẽ gắn thành phần vào GameObject của bạn. Bây giờ nó đã được đính kèm, bạn sẽ nhận thấy rằng nhiều trường mới đã mở ra.

Unity - Tương tác

Với các thiết lập mặc định, GameObject sẽ rơi thẳng đứng xuống do trọng lực. Để tránh điều này, hãy đặt Gravity Scale thành 0.

Bây giờ, chơi trò chơi sẽ không cho thấy bất kỳ sự khác biệt rõ ràng nào, vì GameObject chưa liên quan gì đến thành phần vật lý của nó.

Để giải quyết vấn đề của chúng tôi, chúng ta hãy mở lại mã của mình và viết lại nó.

public class Movement : MonoBehaviour {
   public float speed;
   public Rigidbody2D body;
   // Update is called once per frame
   void Update() {
      float h = Input.GetAxisRaw(“Horizontal”);
      float v = Input.GetAxisRaw(“Vertical”);
      body.velocity = new Vector2(h * speed, v * speed);
   }
}

Chúng ta có thể thấy rằng chúng ta tạo một tham chiếu đến Rigidbody2D trong khai báo và mã cập nhật của chúng ta hoạt động trên tham chiếu đó thay vì biến đổi của Đối tượng. Điều này có nghĩa là Rigidbody đã được giao trách nhiệm di chuyển.

Bạn có thể mong đợi những cơ thể tham khảo để ném NullReferenceException, vì chúng ta đã không được giao bất cứ điều gì với nó. Nếu bạn biên dịch và chạy trò chơi như hiện tại, bạn sẽ gặp lỗi sau ở phía dưới bên trái của trình chỉnh sửa

Unity - Tương tác

Để khắc phục điều này, chúng ta hãy xem xét thành phần được tạo bởi script. Hãy nhớ rằng các thuộc tính công khai tạo các trường riêng của chúng trong Unity, như chúng ta đã làm với biến tốc độ.

Unity - Tương tác

Điều chỉnh tốc độ đến giá trị cao hơn, khoảng 5 và chơi trò chơi. Các va chạm của bạn bây giờ sẽ hoạt động chính xác!

Unity – Ranh giới va chạm tùy chỉnh

Trong chương này, chúng ta hãy tìm hiểu về ranh giới xung đột tùy chỉnh. Chúng ta cũng sẽ học cách điều chỉnh kích thước và hình dạng của các máy va chạm của chúng ta. Hãy để chúng tôi bắt đầu với Box Collider. Box Collider (2D) có 4 cạnh có thể điều chỉnh và có hình dạng giống như một hình chữ nhật. Trong thành phần của Collider, nhấp vào hộp này

Unity - Tương tác

Bạn sẽ thấy 4 “tay cầm” hiển thị trên máy va chạm. Bạn có thể kéo các tay cầm này xung quanh để điều chỉnh kích thước của chúng

Unity - Tương tác

Đối với các hình dạng đơn giản, Unity cũng phát hiện sự phù hợp nhất có thể cho hình dạng của máy va chạm, miễn là bạn chọn đúng. Ví dụ: chọn máy va chạm hình tròn trên hình tròn sẽ khớp với bán kính của nó.

Unity - Tương tác

Đối với các hình dạng phức tạp hơn, Unity sẽ cố gắng tạo ra hình dạng máy va chạm đơn giản nhất nhưng phức tạp nhất. Để làm được điều đó, bạn cần sử dụng Polygon Collider 2D .

Unity - Tương tác

Hãy thử nhấp vào nút Chỉnh sửa máy va chạm và thử nghiệm cách điều chỉnh các máy tương tác

Unity Hiểu Prefabs và Instantiation

The post Unity – Tương tác appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/unity-tuong-tac/feed/ 0 14185
Unity – Lưu và tải cảnh https://dongthoigian.net/unity-luu-va-tai-canh/ https://dongthoigian.net/unity-luu-va-tai-canh/#respond Wed, 22 Jun 2022 02:53:40 +0000 https://dongthoigian.net/?p=14176 Trong chế độ Trình chỉnh sửa (khi trò chơi không chơi), các cảnh có thể được tải vào trình chỉnh sửa bằng cách nhấp đúp vào chúng

The post Unity – Lưu và tải cảnh appeared first on Dongthoigian.net.

]]>
Vào cuối ngày, khi bạn đã hoàn thành một lượng công việc tương đối, bạn muốn lưu lại tiến độ của mình. Trong Unity, nhấn Ctrl + S sẽ không trực tiếp lưu dự án của bạn.

Mọi thứ trong Unity xảy ra trong các cảnh. Lưu và tải cũng vậy; bạn phải lưu công việc hiện tại của mình dưới dạng một cảnh (phần mở rộng .unity) trong nội dung của mình.

Hãy để chúng tôi thử nó ra. Nếu chúng ta nhấn Ctrl + S và đặt tên cho cảnh của mình, chúng ta sẽ thấy một nội dung mới trong vùng Nội dung của chúng ta. Đây là tệp cảnh.

Bây giờ, chúng ta hãy thử tạo một cảnh mới. Để làm như vậy, hãy nhấp chuột phải vào Nội dung và chuyển đến Tạo → Cảnh. Đặt tên cho cảnh mới của bạn và nhấn enter.

Trong chế độ Trình chỉnh sửa (khi trò chơi không chơi), các cảnh có thể được tải vào trình chỉnh sửa bằng cách nhấp đúp vào chúng. Tải một cảnh có các thay đổi chưa được lưu trên cảnh hiện tại của bạn sẽ nhắc bạn lưu hoặc hủy các thay đổi của mình.

Tập lệnh đầu tiên của bạn

Việc nhập hình ảnh và để chúng ở yên trong trò chơi của bạn sẽ không thực sự đưa bạn đến được đâu. Có lẽ nó sẽ tạo nên một khung ảnh đẹp, nhưng không phải là một trò chơi.

Viết kịch bản là điều bắt buộc để tạo trò chơi trong Unity. Scripting là quá trình viết các khối mã được gắn giống như các thành phần vào GameObjects trong khung cảnh. Kịch bản là một trong những công cụ mạnh mẽ nhất theo ý của bạn và nó có thể tạo ra hoặc phá vỡ một trò chơi hay.

Việc viết kịch bản trong Unity được thực hiện thông qua việc triển khai JavaScript của C # hoặc Unity, được gọi là UnityScript (tuy nhiên, với chu kỳ 2018, UnityScript hiện đang bắt đầu giai đoạn ngừng sử dụng, vì vậy bạn không nên sử dụng nó). Với mục đích của loạt bài này, chúng tôi sẽ sử dụng C #.

Để tạo một tập lệnh mới, hãy nhấp chuột phải vào Nội dung của bạn và đi tới Tạo → Tập lệnh C # . Bạn cũng có thể sử dụng tab Tài sản trong thanh trên cùng của công cụ.

Unity

Khi bạn tạo một tập lệnh mới, một nội dung mới sẽ hiển thị. Trong lúc này, hãy để nguyên tên và nhấp đúp vào nó. IDE mặc định của bạn sẽ mở ra cùng với tập lệnh. Hãy để chúng tôi xem nó thực sự là gì.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
   // Use this for initialization
   void Start() { 
   }
   // Update is called once per frame
   void Update() {

   }
}

Bạn sẽ thấy tên tập lệnh của mình dưới dạng một lớp bắt nguồn từ MonoBehaviour . MonoBehaviour là gì? Nó là một thư viện rộng lớn của các lớp và phương thức. Nó giúp tất cả các script trong Unity bắt nguồn từ cách này hay cách khác. Bạn càng viết nhiều script trong Unity, bạn sẽ càng nhận ra MonoBehaviour thực sự hữu ích như thế nào.

Khi tiếp tục, chúng tôi có hai tập lệnh riêng tư không có bất kỳ kiểu trả về nào, đó là phương thức Bắt đầu và Cập nhật . Các Bắt đầu phương pháp chạy một lần cho khung đầu tiên mà gameObject này được sử dụng vào hoạt động trong bối cảnh đó.

Các Cập nhật phương pháp chạy mỗi khung của trò chơi sau khi phương pháp Start. Thông thường, các trò chơi trong Unity chạy ở tốc độ 60 FPS hoặc khung hình / giây, có nghĩa là phương thức Cập nhật được gọi là 60 lần / giây trong khi đối tượng đang hoạt động. Tập lệnh Unity cho phép bạn tận dụng toàn bộ lớp MonoBehaviour, cũng như các tính năng cốt lõi của C # như tập hợp chung, biểu thức lambda và phân tích cú pháp XML, để kể tên một số. Trong bài học tiếp theo, chúng ta sẽ viết đoạn mã đầu tiên của mình!

Unity – Viết kịch bản chuyển động cơ bản

Trong bài học này, chúng ta sẽ viết mã làm cho một gameObject di chuyển lên, xuống, trái và phải dựa trên đầu vào của người dùng. Điều này sẽ giúp chúng tôi hiểu quy trình làm việc của Unity script dễ dàng hơn.

Hãy nhớ rằng mọi GameObject đều có ít nhất một thành phần – Transform . Điều đặc biệt là Transform của gameObject cũng hiển thị dưới dạng các biến trong phần script của Unity để chúng ta có thể sửa đổi nó thông qua mã. Điều này cũng không bị hạn chế đối với Transform; tất cả các thành phần trong Unity đều có thuộc tính, có thể truy cập được thông qua các biến trong script.

Hãy để chúng tôi bắt đầu với kịch bản chuyển động của chúng tôi. Tạo một tập lệnh mới và đặt tên là “Phong trào”.

Bây giờ, mở script và bạn sẽ thấy những thứ tương tự như bạn đã thấy trong bài học trước.

Hãy để chúng tôi tạo một biến float công khai có tên là speed . Đặt một biến công khai trong Unity có một lợi thế lớn – Biến hiển thị dưới dạng trường có thể sửa đổi bên trong trình chỉnh sửa, vì vậy bạn không phải điều chỉnh thủ công các giá trị trong mã.

public class Movement : MonoBehaviour {
   public float speed;
}

Nếu chúng ta lưu tập lệnh này mà không chạm vào các phương thức khác, thì nó sẽ được biên dịch trong Unity.

(Bạn có thể thấy khi nó đang biên dịch bằng  biểu tượng ở góc dưới cùng bên phải.)

Unity

Tiếp theo, kéo và thả tập lệnh từ Nội dung vào GameObject. Nếu bạn làm đúng, đây là những gì bạn sẽ thấy trong các thuộc tính của GameObject –

Unity

Vì giá trị tốc độ có thể điều chỉnh và không cần phải thay đổi mã mọi lúc, chúng ta có thể sử dụng phương thức update () thay vì start ().

Bây giờ chúng ta hãy xem xét các mục tiêu cho phương pháp Cập nhật –

  • Kiểm tra đầu vào của người dùng.
  • Nếu có đầu vào của người dùng, hãy đọc hướng dẫn của đầu vào.
  • Thay đổi các giá trị vị trí của chuyển đổi của đối tượng dựa trên tốc độ và hướng của nó. Để làm như vậy, chúng tôi sẽ thêm đoạn mã sau:
void Update() {
   float h = Input.GetAxisRaw(“Horizontal”);
   float v = Input.GetAxisRaw(“Vertical”);
   
   gameObject.transform.position = new Vector2 (transform.position.x + (h * speed), 
      transform.position.y + (v * speed));

Bây giờ chúng ta hãy thảo luận về mã trong breif.

Trước hết, chúng ta tạo một biến dấu phẩy động có tên là h (đối với chiều ngang) và giá trị của nó được đưa ra bởi phương thức Input.GetAxisRaw . Phương thức này trả về -1, 0 hoặc 1 tùy thuộc vào phím người chơi đã nhấn trên mũi tên lên / xuống / trái / phải.

Lớp Đầu vào chịu trách nhiệm nhận đầu vào từ người dùng dưới dạng nhấn phím, nhập chuột, nhập bộ điều khiển, v.v. Phương thức GetAxisRaw hơi khó hiểu, vì vậy chúng ta sẽ quay lại vấn đề đó sau.

Tiếp theo, chúng tôi đang cập nhật vị trí gameObject của chúng tôi lên một vị trí mới được xác định bằng cách tạo một Vector2 mới . Vector2 nhận 2 tham số, lần lượt là các giá trị x và y của nó . Đối với giá trị x, chúng tôi cung cấp tổng vị trí hiện tại của đối tượng và tốc độ của nó , thêm một số lượng vào mỗi khung hình mà phím được nhấn vào vị trí của nó.

Lưu tập lệnh này và quay lại Unity. Unity sẽ tự động cập nhật tất cả các tập lệnh khi nó biên dịch thành công, vì vậy bạn không cần phải đính kèm lại tập lệnh nhiều lần. Bây giờ bạn đã hoàn tất, hãy thay đổi giá trị của tốc độ trong thuộc tính của GameObject thành 0,8. Điều này rất quan trọng vì giá trị cao hơn sẽ khiến người chơi di chuyển quá nhanh.

Unity

Bây giờ, hãy nhấp vào Chơi và xem trò chơi nhỏ đầu tiên của bạn đang hoạt động!

Unity

Hãy thử nhấn các phím mũi tên và di chuyển xung quanh. Để dừng trò chơi, chỉ cần nhấn Play lại. Bạn thậm chí có thể điều chỉnh tốc độ trong thời gian thực để bạn không phải dừng và khởi động nó mọi lúc.

Trong bài học tiếp theo, chúng ta sẽ tìm hiểu về các vật thể cứng và va chạm

Unity – Hiểu va chạm (xem thêm)

The post Unity – Lưu và tải cảnh appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/unity-luu-va-tai-canh/feed/ 0 14176
Unity – Transforms và Object Parenting https://dongthoigian.net/unity-transforms-va-object-parenting/ https://dongthoigian.net/unity-transforms-va-object-parenting/#respond Wed, 22 Jun 2022 02:43:23 +0000 https://dongthoigian.net/?p=14165 Trong Unity, các đối tượng tuân theo một hệ thống phân cấp . Sử dụng hệ thống này, GameObjects

The post Unity – Transforms và Object Parenting appeared first on Dongthoigian.net.

]]>
Khi mới bắt đầu, chúng ta đã thảo luận về cách biến đổi của gameObject được cho là thành phần quan trọng nhất của nó. Hãy để chúng tôi thảo luận chi tiết về thành phần trong chương này. Ngoài ra, chúng ta cũng sẽ tìm hiểu về khái niệm Nuôi dạy con theo đối tượng .

Các phép biến đổi có ba thuộc tính có thể nhìn thấy – vị trí , xoay và tỷ lệ . Mỗi trong số này có ba giá trị cho ba trục. Các trò chơi 2D thường không tập trung vào trục Z khi nói đến vị trí. Việc sử dụng trục Z phổ biến nhất trong các trò chơi 2D là trong việc tạo thị sai .

Các thuộc tính xoay xác định số lượng xoay (tính bằng độ) một đối tượng được quay quanh trục đó đối với thế giới trò chơi hoặc đối tượng chính.

Quy mô của một đối tượng xác định độ lớn của nó khi so sánh với kích thước ban đầu hoặc gốc của nó. Ví dụ, chúng ta hãy lấy một hình vuông có kích thước 2×2. Nếu tỷ lệ hình vuông này so với trục X bằng 3 và trục Y bằng 2, chúng ta sẽ có một hình vuông có kích thước 6×4.

Unity - Transforms và Object Parenting

Trong phần tiếp theo của chúng tôi, chúng tôi sẽ thảo luận về Nuôi dạy con theo đối tượng là gì.

Nuôi dạy con theo đối tượng là gì?

Trong Unity, các đối tượng tuân theo một hệ thống phân cấp . Sử dụng hệ thống này, GameObjects có thể trở thành “cha mẹ” của các GameObject khác.

Khi một GameObject có cha mẹ, nó sẽ thực hiện tất cả các thay đổi biến đổi của nó đối với một GameObject khác thay vì thế giới trò chơi.

Ví dụ: một đối tượng không có cha mẹ được đặt tại (10, 0 và 0) sẽ cách tâm thế giới trò chơi 10 đơn vị.

Unity - Transforms và Object Parenting

Tuy nhiên, gameObject có cha mẹ được đặt ở (10, 0, 0) sẽ coi vị trí hiện tại của cha mẹ là trung tâm.

Unity - Transforms và Object Parenting

GameObjects có thể được tạo cha mẹ đơn giản bằng cách kéo và thả chúng vào cha mẹ mong muốn. Đối tượng “con” được mô tả trong danh sách đối tượng với một vết lõm nhỏ cùng với mũi tên bên cạnh đối tượng chính.

Nuôi dạy con theo đối tượng

Parenting GameObjects có một số cách sử dụng. Ví dụ: tất cả các bộ phận khác nhau của xe tăng có thể là GameObject riêng biệt, được đặt trong một GameObject duy nhất có tên là “xe tăng”. Bằng cách đó, khi GameObject mẹ “xe tăng” này di chuyển, tất cả các bộ phận sẽ di chuyển cùng với nó vì vị trí của chúng được cập nhật liên tục theo cha mẹ của chúng.

Nuôi dạy con theo đối tượng

Trong bài học tiếp theo của chúng tôi, chúng tôi sẽ thảo luận về các tài sản nội bộ. Chúng tôi cũng sẽ học cách tạo và quản lý các tài sản trong dự án của mình.

Unity – Tài sản nội bộ

Cùng với nội dung bên ngoài mà bạn nhập từ các chương trình khác như tệp âm thanh, hình ảnh, mô hình 3D, v.v., Unity cũng cung cấp việc tạo nội dung bên trong . Những nội dung này được tạo trong chính Unity và như vậy không cần bất kỳ chương trình bên ngoài nào để tạo hoặc sửa đổi.

Dưới đây là một số ví dụ quan trọng về tài sản nội bộ :

  • Cảnh – Những thứ này đóng vai trò là “cấp độ”.
  • Ảnh động – Chúng chứa dữ liệu cho các ảnh động của gameObject.
  • Vật liệu – Những thứ này xác định cách ánh sáng ảnh hưởng đến sự xuất hiện của một vật thể.
  • Scripts – Mã sẽ được viết cho gameObjects.
  • Prefabs – Chúng hoạt động như “bản thiết kế” cho GameObjects để chúng có thể được tạo trong thời gian chạy.

Một số nội dung quan trọng khác là Trình giữ chỗ, Hình vẽ và Mô hình. Chúng được sử dụng khi bạn cần trình giữ chỗ nhanh chóng để chúng có thể được thay thế bằng đồ họa và mô hình thích hợp sau này. Để tạo nội dung nội bộ, hãy nhấp chuột phải vào thư mục Nội dung và chuyển đến Tạo

Nuôi dạy con theo đối tượng

Trong ví dụ này, chúng ta sẽ tạo một Tam giác và một Hình vuông . Cuộn qua vùng chọn Sprites và nhấp vào Triangle

Nuôi dạy con theo đối tượng

Lặp lại quy trình cho Square và bạn sẽ có hai nội dung đồ họa mới.

Nuôi dạy con theo đối tượng

Khi tiếp tục, chúng ta sẽ khám phá thêm về những nội dung này, vì chúng rất quan trọng để xây dựng một trò chơi phù hợp

Unity – Lưu và tải cảnh (xem thêm)

The post Unity – Transforms và Object Parenting appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/unity-transforms-va-object-parenting/feed/ 0 14165
Unity – Tạo Sprites https://dongthoigian.net/unity-tao-sprites/ https://dongthoigian.net/unity-tao-sprites/#respond Wed, 22 Jun 2022 02:24:42 +0000 https://dongthoigian.net/?p=14151 Unity sử dụng sprites theo mặc định khi engine ở chế độ 2D.

The post Unity – Tạo Sprites appeared first on Dongthoigian.net.

]]>
Sprites là các đối tượng 2D đơn giản có hình ảnh đồ họa (được gọi là kết cấu ) trên chúng. Unity sử dụng sprites theo mặc định khi engine ở chế độ 2D. Khi được xem trong không gian 3D, các sprite sẽ có vẻ mỏng như tờ giấy, vì chúng không có chiều rộng Z.

Unity

Sprites luôn đối mặt với máy ảnh ở một góc vuông góc trừ khi được quay trong không gian 3D. Bất cứ khi nào Unity tạo một sprite mới, nó sẽ sử dụng một kết cấu. Kết cấu này sau đó được áp dụng trên GameObject mới và một thành phần Sprite Renderer được gắn vào nó. Điều này làm cho gameObject của chúng tôi hiển thị với kết cấu của chúng tôi, cũng như cung cấp cho nó các thuộc tính liên quan đến cách nó trông trên màn hình.

Unity

Để tạo một sprite trong Unity, chúng ta phải cung cấp cho engine một kết cấu .

Hãy để chúng tôi tạo kết cấu của chúng tôi trước. Lấy tệp hình ảnh tiêu chuẩn như PNG hoặc JPG mà bạn muốn sử dụng, lưu tệp đó rồi kéo hình ảnh vào vùng Nội dung của Unity.

Unity

Tiếp theo, kéo hình ảnh từ Nội dung vào Hệ thống phân cấp cảnh . Bạn sẽ nhận thấy rằng ngay sau khi bạn buông nút chuột, một GameObject mới với tên kết cấu của bạn sẽ xuất hiện trong danh sách. Bạn cũng sẽ thấy hình ảnh bây giờ ở giữa màn hình trong Chế độ xem cảnh .

Unity

Chúng ta hãy xem xét các điểm sau trong khi tạo một sprite:

  • Bằng cách kéo từ một nguồn bên ngoài vào Unity, chúng tôi có thêm một tài sản .
  • Nội dung này là một hình ảnh, vì vậy nó sẽ trở thành một kết cấu.
  • Bằng cách kéo kết cấu này vào hệ thống phân cấp cảnh, chúng tôi đang tạo một GameObject mới có cùng tên với kết cấu của chúng tôi, với một Sprite Renderer được đính kèm.
  • Trình kết xuất sprite này sử dụng kết cấu đó để vẽ hình ảnh trong trò chơi.

Bây giờ chúng tôi đã tạo một sprite trong cảnh của chúng tôi. Trong bài học tiếp theo, chúng ta sẽ xem xét một số bổ ngữ cho các sprite mà chúng ta có.

Unity – Sửa đổi Sprites

Sprite mà chúng tôi vừa nhập cũng có thể được thao tác theo nhiều cách khác nhau để thay đổi giao diện của nó. Nếu bạn nhìn vào góc trên cùng bên trái của giao diện của engine, bạn sẽ thấy một thanh công cụ như hình dưới đây

Unity

Hãy để chúng tôi thảo luận về chức năng của các nút này. Công cụ Hand được sử dụng để di chuyển xung quanh khung cảnh mà không ảnh hưởng đến bất kỳ đối tượng nào.

Unity

Tiếp theo, chúng ta có công cụ Move . Điều này được sử dụng để di chuyển các đối tượng trong thế giới trò chơi xung quanh.

Unity

Ở trung tâm, chúng ta có công cụ Rotate , để xoay các đối tượng dọc theo trục Z của thế giới trò chơi (hoặc đối tượng mẹ).

Unity

Công cụ Scaling được đặt hướng lên trên. Công cụ này cho phép bạn sửa đổi kích thước (tỷ lệ) của các đối tượng dọc theo các trục nhất định.

Unity

Cuối cùng, chúng ta có công cụ Rect . Công cụ này hoạt động giống như sự kết hợp của công cụ Move và công cụ Scaling , nhưng dễ bị mất độ chính xác. Nó hữu ích hơn trong việc sắp xếp các phần tử giao diện người dùng.

Unity

Những công cụ này tỏ ra xứng đáng khi mức độ phức tạp của dự án tăng lên.

Unity – Transforms và Object Parenting (xem thêm)

The post Unity – Tạo Sprites appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/unity-tao-sprites/feed/ 0 14151
Hướng dẫn Unity https://dongthoigian.net/huong-dan-unity/ https://dongthoigian.net/huong-dan-unity/#respond Wed, 22 Jun 2022 02:08:40 +0000 https://dongthoigian.net/?p=14134 Trọng tâm của Unity nằm ở việc phát triển cả trò chơi 2D và 3D và nội dung tương tác.

The post Hướng dẫn Unity appeared first on Dongthoigian.net.

]]>
Unity là một game engine đa nền tảng được Unity Technologies phát hành lần đầu vào năm 2005. Trọng tâm của Unity nằm ở việc phát triển cả trò chơi 2D và 3D và nội dung tương tác. Unity hiện hỗ trợ hơn 20 nền tảng mục tiêu khác nhau để triển khai, trong khi các nền tảng phổ biến nhất của nó là hệ thống PC, Android và iOS.

Hướng dẫn này được thiết kế cho những ai thấy thế giới trò chơi thú vị và sáng tạo. Các hướng dẫn này sẽ giúp ích cho những độc giả có mong muốn học làm game. Điều quan trọng là phải có quyền truy cập vào máy đáp ứng các yêu cầu tối thiểu của Unity. Cần phải có kiến ​​thức tiên quyết về C # cơ bản để hiểu đầy đủ về loạt bài này

Unity – Giới thiệu

Unity là một game engine đa nền tảng được Unity Technologies phát hành lần đầu vào năm 2005. Trọng tâm của Unity nằm ở việc phát triển cả trò chơi 2D và 3D và nội dung tương tác. Unity hiện hỗ trợ hơn 20 nền tảng mục tiêu khác nhau để triển khai, trong khi các nền tảng phổ biến nhất của nó là hệ thống PC, Android và iOS.

Unity có bộ công cụ hoàn chỉnh để thiết kế và xây dựng trò chơi, bao gồm giao diện cho đồ họa, âm thanh và các công cụ xây dựng cấp độ, yêu cầu sử dụng tối thiểu các chương trình bên ngoài để làm việc trong các dự án.

Trong loạt bài này, chúng ta sẽ –

  • Học cách sử dụng các nguyên tắc cơ bản khác nhau của Unity
  • Hiểu cách mọi thứ hoạt động trong động cơ
  • Hiểu các khái niệm cơ bản về thiết kế trò chơi
  • Tạo và xây dựng các trò chơi mẫu thực tế
  • Học cách triển khai các dự án của bạn ra thị trường

Bây giờ chúng ta hãy bắt đầu.

Unity – Cài đặt và Thiết lập

Để tạo nội dung với Unity, yêu cầu chính là tải xuống công cụ Unity và môi trường phát triển. Cùng với công cụ cốt lõi, bạn cũng có thể tải xuống các mô-đun tùy chọn để triển khai lên nhiều nền tảng khác nhau, cũng như các công cụ để tích hợp tập lệnh Unity vào Visual Studio.

Hướng dẫn Unity

Để cài đặt Unity, hãy truy cập vào phần này Sau khi ở đó, hãy nhấp vào –

Trên trang tiếp theo, nhấp vào nút Thử ngay bên dưới Cá nhân . Đây là phiên bản miễn phí của Unity, chứa tất cả các tính năng cốt lõi. Khi chúng ta bắt đầu loạt bài này, tốt hơn là bạn nên tìm hiểu cách sử dụng động cơ trước khi cân nhắc mua Plus hoặc Pro .

Trên trang tiếp theo, cuộn xuống và nhấp để xác nhận rằng bạn hoặc công ty của bạn không kiếm được hơn 100.000 USD doanh thu hàng năm. Nếu bạn làm vậy, bạn không được phép dùng thử Unity Free, mặc dù bạn có thể đăng ký bản dùng thử miễn phí 30 ngày của phiên bản Pro.

Hướng dẫn Unity

Tiếp theo, nhấp vào nền tảng mong muốn của bạn để cài đặt Unity. Trong loạt bài này, chúng tôi sẽ đề cập đến phiên bản Windows của engine. Cũng có thể cài đặt Unity trên Ubuntu và một số hệ thống Linux bổ sung xem tại đây để biết thêm thông tin

Nó cũng được đánh giá cao thông báo rằng bạn cài đặt phiên bản mới nhất của Visual Studio , cung cấp nhiều công cụ hữu ích trên các tiêu chuẩn MonoDevelop IDE mà tàu với Unity. Sau khi trình cài đặt được tải xuống, hãy duyệt qua nó cho đến khi bạn đến menu để chọn những thành phần bạn muốn cài đặt với Unity.

Hướng dẫn Unity

Tại đây, chọn các thành phần mà bạn sẽ cần. Đối với loạt bài này, chúng tôi muốn cài đặt các thành phần mà bạn thấy trong hình ảnh. Lựa chọn này bao gồm chính động cơ, tài liệu về động cơ, một IDE; xây dựng các công cụ cho Android và một bộ sưu tập nội dung mà bạn có thể thêm vào dự án của mình sau này.

Nhấp vào tiếp theo, làm theo các hướng dẫn và tùy chọn và để Unity tải xuống và cài đặt chính nó trên máy tính của bạn.

Mở Unity và trong bài học tiếp theo, chúng ta sẽ tạo dự án đầu tiên của mình.

Tạo dự án đầu tiên của bạn

Unity phù hợp như nhau cho cả trò chơi 2D và 3D. Tất cả các trò chơi được tạo trong Unity đều bắt đầu dưới dạng Dự án từ Màn hình khởi động. Mở bản sao Unity mới được cài đặt của bạn; màn hình sẽ xuất hiện như hình dưới đây

Hướng dẫn Unity

Các dự án hiện có của bạn sẽ hiển thị trong vùng mờ như trong hình trên.

Ở góc trên bên phải của cửa sổ, bạn sẽ thấy biểu tượng Mới như hình trên. Khi nhấp vào biểu tượng, bạn sẽ đến màn hình Thiết lập dự án.

Hướng dẫn Unity

Tại đây, bạn có thể đặt tên cho dự án của mình, đặt vị trí nơi nó được lưu, đặt loại dự án và thêm tài sản hiện có. Bây giờ, hãy để chúng tôi đặt tên cho dự án đầu tiên của mình là “Hello World!” và đặt nó ở chế độ 2D .

Hướng dẫn Unity

Nhấp vào Tạo dự án và để Unity thiết lập các tệp cốt lõi của dự án của bạn. Điều này có thể mất thời gian tùy thuộc vào tốc độ máy tính, nội dung được thêm trước và loại Dự án của bạn.

Biết động cơ

Sau khi dự án mới của bạn được tạo và Unity mở ra, màn hình sau sẽ xuất hiện:

Hướng dẫn Unity

Hãy để chúng tôi xem qua những gì hiển thị trong cửa sổ này. Hiện tại, chúng tôi quan tâm đến bốn khu vực chính

Hướng dẫn Unity

Cửa sổ này là nơi chúng ta sẽ xây dựng các Cảnh của mình . Cảnh là cấp độ mà mọi thứ trong trò chơi của bạn diễn ra. Nếu bạn nhấp vào tab Trò chơi nhỏ , bạn có thể thấy cửa sổ Xem trước về cách trò chơi trông như thế nào đối với người chơi. Hiện tại, nó phải là một nền đơn giản, màu xanh lam.

Hướng dẫn Unity

Vùng này là Thanh tra . Hiện tại nó đang trống, bởi vì chúng ta không có bất kỳ đối tượng nào trong cảnh của chúng ta. Chúng ta sẽ xem cách Thanh tra được sử dụng ở phần sau.

Hướng dẫn Unity

Cửa sổ này là Phân cấp Cảnh . Đó là nơi liệt kê tất cả các đối tượng trong cảnh đang mở của bạn, cùng với hệ thống phân cấp cha-con của chúng. Chúng tôi sẽ sớm thêm các đối tượng vào danh sách này.

Hướng dẫn Unity

Cuối cùng, vùng này là cửa sổ Tài sản Dự án . Tất cả tài sản trong dự án hiện tại của bạn được lưu trữ và lưu giữ tại đây. Tất cả nội dung được nhập từ bên ngoài như kết cấu, phông chữ và tệp âm thanh cũng được lưu giữ ở đây trước khi chúng được sử dụng trong một cảnh.

Trong bài học tiếp theo, chúng ta sẽ thảo luận về quy trình làm việc và hoạt động của một trò chơi trong Unity.

Unity hoạt động như thế nào?

Trong Unity, tất cả các màn chơi đều diễn ra trong các cảnh . Cảnh là cấp độ trong đó tất cả các khía cạnh của trò chơi của bạn như cấp độ trò chơi, màn hình tiêu đề, menu và cảnh cắt diễn ra.

Theo mặc định, một Cảnh mới trong Unity sẽ có một đối tượng Camera trong cảnh được gọi là Camera chính . Có thể thêm nhiều camera vào hiện trường, nhưng chúng tôi sẽ chỉ xử lý camera chính lúc này.

Máy ảnh chính hiển thị mọi thứ mà nó nhìn thấy hoặc “chụp” trong một khu vực cụ thể được gọi là khung nhìn . Mọi thứ đi vào khu vực này đều hiển thị cho người chơi.

Bạn có thể xem chế độ xem này dưới dạng hình chữ nhật màu xám bằng cách đặt chuột vào bên trong chế độ xem cảnh và cuộn xuống để thu nhỏ chế độ xem cảnh. (Bạn cũng có thể làm như vậy bằng cách giữ Alt và kéo Nhấp chuột phải.

Hướng dẫn Unity

Bản thân một cảnh được tạo ra từ các đối tượng , được gọi là GameObjects . GameObjects có thể là bất cứ thứ gì từ mô hình của người chơi đến GUI trên màn hình, từ các nút và kẻ thù cho đến các “trình quản lý” vô hình như nguồn âm thanh.

GameObjects có một tập hợp các thành phần gắn liền với chúng, mô tả cách chúng cư xử trong cảnh, cũng như cách chúng phản ứng với những người khác trong cảnh.

Trên thực tế, chúng ta có thể khám phá điều đó ngay bây giờ. Nhấp vào Máy ảnh chính trong Hệ thống phân cấp cảnh và nhìn vào Trình kiểm tra . Nó sẽ không trống bây giờ; thay vào đó, nó sẽ có một loạt “mô-đun” trong đó.

Hướng dẫn Unity

Thành phần quan trọng nhất đối với bất kỳ GameObject nào là thành phần Transform của nó . Bất kỳ đối tượng nào tồn tại trong một cảnh sẽ có một phép biến đổi , xác định vị trí, vòng quay và tỷ lệ của nó đối với thế giới trò chơi hoặc cha mẹ của nó nếu có.

Các thành phần bổ sung có thể được gắn vào một đối tượng bằng cách nhấp vào Thêm thành phần và chọn thành phần mong muốn. Trong các bài học tiếp theo của chúng tôi, chúng tôi cũng sẽ đính kèm Scripts vào GameObjects để chúng tôi có thể cung cấp cho chúng hành vi được lập trình.

Bây giờ chúng ta hãy xem xét một vài ví dụ về các thành phần –

  • Renderer – Chịu trách nhiệm kết xuất và hiển thị các đối tượng.
  • Collider – Xác định ranh giới va chạm vật lý cho các đối tượng.
  • Rigidbody – Cung cấp cho một đối tượng các thuộc tính vật lý thời gian thực như trọng lượng và lực hấp dẫn.
  • Nguồn âm thanh – Cung cấp các thuộc tính đối tượng để phát và lưu trữ âm thanh.
  • Audio Listener – Thành phần thực sự “nghe” âm thanh và xuất nó ra loa của người chơi. Theo mặc định, một cái tồn tại trong máy ảnh chính.
  • Animator – Cấp cho một đối tượng quyền truy cập vào hệ thống hoạt ảnh.

Ánh sáng – Làm cho đối tượng hoạt động như một nguồn sáng, với nhiều hiệu

Hướng dẫn Unity

Trong biểu đồ này, chúng ta có thể thấy cách Unity tự biên soạn thông qua GameObjects thành các cảnh. Trong bài học tiếp theo, chúng ta sẽ tạo GameObject đầu tiên của mình và đi sâu vào viết kịch bản.

Unity – Tạo Sprites (xem thêm)

The post Hướng dẫn Unity appeared first on Dongthoigian.net.

]]>
https://dongthoigian.net/huong-dan-unity/feed/ 0 14134