در بخش کدنویسی یونیتی یا همان اسکریپتی که ایجاد میکنید اگر متغیری که نوشته باشید که نیاز به دسترسی در انجین پنجره Inspector از public استفاده میکنیم و اگر نیاز به دسترسی نداشته باشه با private تعریف میشود.

حال چنانچه در حالتی شما قرار است در حالت private بخاطر هزاران دلیل که یکی از آن ها امنیت بیشتر شما در کدنویسی است ولی در پنجره Inspector اون متغیر رو لازم دارید از SerializeField استفاده میکنیم

مثال

[SerializeField]
private int a;

با نوشتن کد بالا شما میتوانید int a را در پنجره Inspector یونیتی مقدار دهی کنید جهت سعی و خطاها.

HideInInspector برعکس SerializeField کار میکنید یک زمان هست که شما نیاز به متغیری در Inspector ندارید اما نیاز به این دارید که public نوشته شود .

[HideInInspector]
public int a;