Mẹo Hữu ích khi Code Game Unity
Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát triển video game cho máy tính, consoles và điện thoại. Lần đầu tiên nó được công bố chạy trên hệ điều hành OS X, tại Apple's
I.2 cách tham chiếu đến class khác
1.tham chiếu bằng tên class và biến trung gian
-
Giả sửmuốn truy cập để lấy thông tin 1 class là test.cs.
-
Tạo 1 class khác và tạo biến trung gian là :[Serializedfield] test get_test;
-
Get_test sẽ có thể lấy đc tất cả các biến và phương thức có phạm vi public trở lên
2.tham chiếu bằng namespace
A. mô hình CMMGUV
Core:
-
Chịu trách nhiệm cho các tính năng cốt lõi và không phụ thuộc vào bất kỳ module nào khác.
-
Chứa các lớp, hàm và utilities dùng chung cho toàn bộ dự án.
-
Ví dụ: Quản lý vòng đời, quản lý tài nguyên, quản lý cấu hình, quản lý sự kiện, v.v.
Model:
-
Chịu trách nhiệm cho các lớp mô tả dữ liệu và logic nghiệp vụ.
-
Chứa các lớp đại diện cho các thực thể trong game, chẳng hạn như nhân vật, kẻ địch, vũ khí, v.v.
-
Không chứa bất kỳ logic giao diện người dùng hoặc cơ chế game play nào.
Mechanic:
-
Chịu trách nhiệm cho các hệ thống và tính năng game play.
-
Chứa các lớp và logic liên quan đến các cơ chế game play như di chuyển, tấn công, phòng ngự, v.v.
-
Tương tác với các lớp trong namespace Model để thực hiện các tính năng game play.
GamePlayer:
-
Chịu trách nhiệm cho logic điều khiển và hành vi của người chơi.
-
Chứa các lớp và logic liên quan đến việc kiểm soát các hành động của người chơi, chẳng hạn như nhập liệu, điều khiển nhân vật, v.v.
Tương tác với các lớp trong namespace Mechanic để thực hiện các hành động của người chơi.
UI:
-
Chịu trách nhiệm cho giao diện người dùng và các tính năng liên quan.
-
Chứa các lớp và logic liên quan đến các phần tử giao diện như menu, HUD, popup, v.v.
-
Tương tác với các lớp trong namespace Model và Mechanic để hiển thị và cập nhật thông tin cho người chơi.
View:
-
Chịu trách nhiệm cho việc hiển thị các thực thể trong game.
-
Chứa các lớp và logic liên quan đến việc vẽ, hiệu ứng, animation, v.v. cho các đối tượng trong game.
-
Tương tác với các lớp trong namespace Model để lấy dữ liệu và hiển thị chúng.
B. Mô hình MVC
-
Đọc lại phần A.
-
Model tương ứng với thành phần "model".
-
View tương ứng với "view" và "UI".
-
Controller tương ứng với "core", "mechanic" và "gameplay".
II.khi nào cần update, fix update và late update
Update():
-
Được gọi một lần mỗi frame, ngay sau khi frame được vẽ.
-
Thích hợp để xử lý các tương tác người dùng, cập nhật trạng thái game, hoặc các tác vụ
-
không phụ thuộc vào thời gian.
-
Ví dụ: Kiểm tra đầu vào, cập nhật vị trí của vật thể dựa trên di chuyển của người dùng.
FixedUpdate():
-
Được gọi với một tần suất cố định, độc lập với tốc độ khung hình.
-
Thích hợp để cập nhật các vật lý, như chuyển động, va chạm, lực, v.v.
-
Ví dụ: Cập nhật vị trí và vận tốc của vật thể dựa trên lực và khối lượng.
LateUpdate():
-
Được gọi sau khi tất cả các Update() trong frame đã được gọi.
-
Thích hợp để cập nhật các thành phần phụ thuộc vào trạng thái của các vật thể khác, như camera theo dõi nhân vật.
-
Ví dụ: Cập nhật vị trí của camera để theo dõi nhân vật sau khi nhân vật đã được cập nhật vị trí trong Update().
Một số trường hợp điển hình khi nên sử dụng FixedUpdate() và LateUpdate():
FixedUpdate():
-
Cập nhật vật lý, như di chuyển, va chạm, lực.
-
Cập nhật trạng thái của các thành phần liên quan đến vật lý, như Rigidbody.
LateUpdate():
-
Cập nhật camera để theo dõi nhân vật hoặc đối tượng khác.
-
Cập nhật UI để phản ảnh trạng thái của game.
-
Cập nhật các thành phần phụ thuộc vào trạng thái của các thành phần khác.
III.XML doc cơ bản
summary:
-
summary. là một phần của XML-doc comment, được sử dụng để mô tả một phần của code, như một phương thức, lớp hoặc thuộc tính.
-
Mục đích của <summary> là cung cấp thông tin mô tả về chức năng và mục đích của code, giúp người đọc hiểu rõ hơn.
-
Thông tin trong <summary> sẽ được hiển thị khi sử dụng IDE như Visual Studio để xem tài liệu của code.
- <summary> được bao quanh bởi cặp thẻ /// hoặc /** */.
/// <summar> /// Turns the main menu on or off. /// </summary>
param:
- Thẻ param được sử dụng để mô tả một tham số đầu vào của một phương thức.
Cú pháp: <param name="tên_tham_số">Mô tả tham số</param>
** Return : **
-
Thẻ <return> được sử dụng để mô tả giá trị trả về của một phương thức.
-
Cú pháp: <returns>Mô tả giá trị trả về</returns>
Ví dụ:
/// <summary>
/// Calculates the area of a rectangle.
/// </summary>
/// <param name="width">The width of the rectangle.</param>
/// <param name="height">The height of the rectangle.</param>
/// <returns>The area of the rectangle.</returns>
public double CalculateRectangleArea(double width, double height)
{ return width * height;
}