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.
Thử thách
DễGiữ cho cây tiếp tục lớn lên.
- Cắt dòng
int frames = 0;bên trongUpdate(). - Dán dòng đó phía trên
void Update(), bên trong lớp, đểframestrở 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
1C# cơ bản trong Unity
Xin chào, UnityBiếnSố thập phân cần có fVăn bản trong ConsoleBiến có thể ghi nhớIf và elseSo sánh các sốÔn tập: Thu thập xu7Vòng lặp và phương thức
Lặp lại với forVòng lặp lồng nhauViết phương thứcPhương thức trả lờiMảngÔn tập: Cầu thang2Làm cho nó chuyển động
Đặt khối lập phươngDi chuyển theo từng khung hìnhXoay mỗi giâyĐiều khiển bằng các phímÔn tập: Lái khối lập phương5Vectơ
Cộng vectơPhương hướngKhông gian cục bộ và không gian thế giớiTốc độ theo đường chéoKhoảng cách giữa các vậtVector3 là một structÔn tập: Người điều khiển drone8GameObject và thành phần
Tham chiếu trong InspectorLấy một thành phầnThành phần bị thiếuThêm một thành phầnRequireComponentHiện và ẩnÔn tập: Công tắc đèn3Inspector
Các trường trong InspectorSerializeFieldSố thực và MathfThuộc tính trong InspectorÔn tập: thang máy6Biến đổi và hệ phân cấp
Đối tượng cha và conKéo cờ lênTỷ lệNhìn vào các vật thểDi chuyển đến một điểmÔn tập: Mặt trăng quay quanh9Dự án: Bắt lấy ngôi sao
Người bắt saoNgôi sao rơiTự luyện tập: Playground Unity