Sử dụng [System.Serializable] trong unity như thế nào?
Bài viết giải thích cách sử dụng thuộc tính [System.Serializable] trong Unity để hiển thị các class và thuộc tính của chúng trong Inspector. Tác giả trình bày lợi ích của việc này giúp lập trình viên dễ dàng điều chỉnh các giá trị và tùy biến plugin, đồng thời minh họa bằng ví dụ cụ thể về cách khai báo và hiển thị một mảng các class được đánh dấu Serializable trong giao diện Inspector.
![Sử dụng [System.Serializable] trong unity như thế nào?](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fkhoanguyen1505%2Fimage%2Fupload%2Fv1751210719%2Fkhoa_blog%2FS%25E1%25BB%25AD_d%25E1%25BB%25A5ng_SystemSerializable_trong_unity_nh%25C6%25B0_th%25E1%25BA%25BF_n%25C3%25A0o%2F0ed05238-8734-4b44-995d-953a2fbcff94_374x451.png.jpg&w=1920&q=75)
Khi sử dụng [System.Serializable] trong unity trước một class, tác dụng là để class đó và thuộc tính của nó có thể xuất hiện ở ngoài Inspector. Điều này giúp cho lập trình viên có thể dễ dàng điều chỉnh thuộc tính hơn. Bạn có thể lên Asset store và tải về thử một plugin bất kỳ, bạn sẽ thấy đa số họ sử dụng [System.Serializable] để cho người mua plugin có thể dễ dàng tùy biến được các giá trị. Cùng xem qua một ví dụ sau nhé:
Bạn thấy là trước class mình có để dòng [System.Serializable] đúng không? Sau đó mình có khai báo một mảng các class đó:
public InputAxisState[] inputs;
Cùng ra ngoài Inspector xem nhé:
Nếu bạn bỏ [System.Serializable] đi thì class này sẽ không hiện ra ngoài Inspector được
Related Posts
Discover more content you might enjoy

Sự khác nhau giữa Input.GetAxis và Input.GetAxisRaw
Bài viết giải thích sự khác biệt giữa hai hàm xử lý đầu vào trong Unity3D: Input.GetAxis và Input.GetAxisRaw. Input.GetAxis trả về giá trị từ -1 đến 1 với sự chuyển đổi mượt mà, phù hợp cho chuyển động trong game 3D, trong khi Input.GetAxisRaw chỉ trả về chính xác một trong ba giá trị -1, 0 hoặc 1, thích hợp hơn cho game 2D. Tác giả minh họa bằng ví dụ cụ thể và hướng dẫn khi nào nên sử dụng mỗi hàm.

ScreenPoint, ViewPoint và WorldPoint trong Unity3D
Bài viết giải thích sự khác biệt giữa ba cách biểu diễn điểm trong Unity3D: ScreenPoint (biểu diễn theo pixel của khung hình), ViewPoint (khung hình luôn có độ cao và rộng là 1), và WorldPoint (tọa độ thể hiện qua Transform.Position). Tác giả trình bày mục đích của việc có ba cách biểu diễn này là để giúp lập trình viên tạo game cross-platform linh hoạt hơn trên nhiều kích cỡ màn hình khác nhau.

Game Theory trong thời đại AI: Khi máy móc tham gia vào "trò chơi"
Bài viết phân tích sự giao thoa giữa lý thuyết trò chơi (Game Theory) và trí tuệ nhân tạo, giải thích cách AI đang thay đổi các nguyên lý cân bằng Nash và chiến lược tối ưu. Tác giả đưa ra các ví dụ thực tế về ứng dụng trong kinh doanh, giao thông và an ninh mạng.

Bài này không phải AI viết
Suy ngẫm chân thành về giá trị của việc viết thủ công trong kỷ nguyên AI. Dù AI có thể tạo nội dung hiệu quả, bài viết này là lời khẳng định về sự kết nối cá nhân và giá trị độc đáo mà con người mang lại cho văn bản của mình.

Day 12 - Profitable MVP in 30 Days - Bỏ cuộc
Bài viết ngày 12 của thử thách xây dựng MVP có lợi nhuận, tác giả chia sẻ về cảm giác muốn bỏ cuộc nhưng quyết định tiếp tục, đấu tranh nội tâm giữa sự lười biếng và quyết tâm hoàn thành thử thách. Cuối cùng, tác giả chọn phát triển ứng dụng Speed Reading Chrome Extension - một ý tưởng giải quyết vấn đề cá nhân mà tác giả sẽ sử dụng hàng ngày.

Hướng dẫn học tiếng Anh bằng Flashcard.
Bài viết hướng dẫn phương pháp học tiếng Anh hiệu quả bằng Flashcard, giới thiệu cơ sở khoa học của phương pháp này và chia sẻ kinh nghiệm cá nhân của tác giả khi học được 300 phrasal verb trong một tháng. Bao gồm các bước cụ thể để tạo và sử dụng flashcard trong việc học từ vựng.