Menu
CoddyTech

Biến có thể ghi nhớ

Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 5 trên 85.

Unity gọi Update() mỗi khung hình, và mỗi lần gọi đều bắt đầu lại từ đầu: biến được tạo bên trong một phương thức sẽ bị loại bỏ khi phương thức kết thúc. Vì vậy, bộ đếm này không bao giờ vượt quá 1:

void Update()
{
    int frames = 0;
    frames++;
}

frames++ thêm 1, là cách viết ngắn gọn của frames += 1. Nhưng ở khung hình tiếp theo, chương trình lại chạy int frames = 0; và bắt đầu lại.

Để ghi nhớ một giá trị từ khung hình này sang khung hình tiếp theo, hãy tạo biến bên trong lớp nhưng bên ngoài mọi phương thức. Biến ở đó là một trường: nó tồn tại chừng nào đối tượng còn tồn tại, và mọi phương thức của lớp đều có thể dùng nó.

int frames = 0;

void Update()
{
    frames++;
}

Bây giờ, frames tiếp tục đếm: 1, 2, 3 rồi tiếp nữa, tăng thêm một sau mỗi khung hình.

challenge icon

Thử thách

Dễ

Giữ cho cây tiếp tục lớn lên.

  1. Cắt dòng int frames = 0; bên trong Update().
  2. Dán dòng đó phía trên void Update(), bên trong lớp, để frames trở thành một trường lưu lại giá trị đếm.

Nhấn Chơi: cây cao thêm một chút sau mỗi khung hình. Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;

public class Grower : MonoBehaviour
{
    void Update()
    {
        int frames = 0;
        frames++;
        transform.localScale = new Vector3(1, 1 + frames * 0.01f, 1);
    }
}

Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity

Tự luyện tập: Playground Unity