Thủ thuật lập trình Unity

Khi nói đến lập trình trong Unity, có rất nhiều từ khóa và lệnh programming hữu ích để cải thiện quy trình làm việc trong trình chỉnh sửa và tăng tốc quá trình phát triển.

Một số từ khóa được dành riêng cho việc gỡ lỗi, trong khi những từ khóa khác được thiết kế để tách logic trình soạn thảo khỏi logic tập lệnh.

1. '[SerializeField]' Thuộc tính

Theo mặc định, Unity ẩn các biến riêng tư khỏi trình kiểm tra, nhưng bằng cách thêm thuộc tính '[SerializeField]' trước chúng, chúng sẽ có thể định cấu hình được trong trình kiểm tra trong khi vẫn giữ cho chúng không thể truy cập được từ các tập lệnh khác.

[SerializeField]
private int myPrivateVariable;

2. '[HideInInspector]' và thuộc tính '[System.NonSerialized]'

Cả hai thuộc tính '[HideInInspector]' và '[System.NonSerialized]' đều có chức năng tương tự nhau, để ẩn các biến công khai khỏi trình kiểm tra, tuy nhiên, chúng hơi khác nhau về mặt tuần tự hóa.

Sự khác biệt giữa '[HideInInspector]' và '[System.NonSerialized]' là '[HideInInspector]' sẽ chỉ ẩn biến khỏi trình kiểm tra, tuy nhiên, Unity sẽ tiếp tục tuần tự hóa nó (có nghĩa là giá trị mặc định có thể khác với giá trị được cung cấp trong mã), Mặt khác, '[System.NonSerialized]' sẽ không chỉ ẩn biến khỏi trình kiểm tra mà còn báo hiệu Unity không tuần tự hóa biến đó (có nghĩa là giá trị mặc định sẽ được đặt lại giữa các phiên thành giá trị được cung cấp trong mã).

[HideInInspector]
public int myInternalVariable = 0; //Will always be 0 after the first initialization, so if you decide to change the value in the script, it may not always reflect in the Editor. Often used to remove clutter from the inspector.

[System.NonSerialized]
public int myNonSerializedVariable = 1; //The initial value will always be 1, or whatever value is set. Often used to mimic a private variable, while keeping it accessible from within other scripts.

3. '[ExecuteAlways]' Thuộc tính

'[ExecuteAlways]' buộc tập lệnh phải được thực thi ở chế độ chỉnh sửa và chế độ chỉnh sửa Prefab, ngay cả khi trò chơi không chơi. Điều này có thể hữu ích cho mục đích thử nghiệm và gỡ lỗi.

Thuộc tính được thêm vào trước khi khai báo lớp:

[ExecuteAlways]
public class MyScript : MonoBehaviour {
    // ...
}

4. 'Debug.Break()'

'Debug.Break()' tạm dừng trình soạn thảo.

Chức năng này hữu ích khi bạn muốn kiểm tra các giá trị nhất định trong trình kiểm tra và bạn không thể tạm dừng nó theo cách thủ công.

void Update() {
    if (someCondition) {
        Debug.Break();
    }
}

5. '[Range]' Thuộc tính

Thuộc tính '[Range]' cho phép bạn tạo một thanh trượt trong Trình chỉnh sửa cho biến float hoặc int công khai, có thể hữu ích cho việc điều chỉnh các giá trị khi đang di chuyển theo cách thân thiện hơn với người dùng. Chỉ cần cung cấp các giá trị tối thiểu và tối đa, như thế này:

[Range(0f, 1f)]
public float myFloatVariable;

Hãy bình luận bên dưới các mẹo và thủ thuật lập trình yêu thích của bạn trong Unity.

Bài viết được đề xuất
Giới thiệu về ngôn ngữ kịch bản Unity C#
Danh sách thống nhất các từ khóa hữu ích trong C#
Tìm hiểu kiến ​​trúc dựa trên thành phần của Unity
Triển khai nhóm đối tượng trong Unity
Tạo Trình mô phỏng săn bắn trong Unity
Xoay vòng tại chỗ trong Unity
Hướng dẫn tải cảnh trong Unity