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.

Tối giản blog với static website, bye Wordpress!

Kinh nghiệm tổ chức sự kiện meetup cho người mới
Bài viết chia sẻ kinh nghiệm thực tế khi tổ chức sự kiện meetup đầu tiên cho cộng đồng NoCode Việt Nam. Tác giả hướng dẫn chi tiết các bước từ mời speaker, bán vé, thuê địa điểm, thiết kế format chương trình, đến tương tác sau sự kiện. Bài viết cũng phân tích lợi ích của việc tổ chức sự kiện offline như tạo cơ hội networking, truyền cảm hứng và xây dựng mối quan hệ bền chặt trong cộng đồng.