مفهوم Serialization در یونیتی
در علوم رایانه، در زمینهٔ ذخیرهسازی داده، سریال سازی (serialization) یک فرایند ترجمه است که در آن ساختمانهای داده، یا حالت شئ، به یک قالب (فرمت) ترجمه میشود که آن قالب توانایی ذخیره (مثلا در یک فایل) یا توانایی انتقال (مثلا در بین اتصال پیوند شبکه) دارد، و نیز توانایی بازساخت در آینده (احتمالا در یک محیط رایانه ای متفاوت) را دارد.
پس در واقع یک شئ را سریال سازی می کنیم تا فرمت استانداردی شود تا بتوان همه جا از آن استفاده کرد.
روش های مختلفی برای سریال سازی هست که معروف ترین آنها json , XML ,Yaml می باشند.
مثال ساده
فرض کنید شما قرار است لیستی از اعداد داشته باشید که در نرم افزار های مختلف از آن استفاده کنید
ولی هر کدام از آن نرم افزار ها یک فرمت را قبول می کند!
برای حل این مشکل می توان این اطلاعات را Serialize کرد و استفاده کرد!
مثال پیچیده!
فرض کنید کلاسی دارید که باید تبدیل به فرمت استانداردی شود.
ابتدا ساختار کلی آن را می نویسیم:
بعد این اطلاعات را باید به شکلی بنویسیم که استاندارد باشد یا به اصطلاح سریال سازی شود.
برای این کار می توانیم از Json یا فرمت های دیگر استفاده کنیم.
مفهوم Encapsulation
یکی از مفاهیم مهم زبان های برنامه نویسی پیشرفته ، مفهوم Encapsulation یا کپسوله سازی است.
وقتی می خواهیم یک برنامه بزرگ بنویسیم ، خیلی مهمه که برنامه قابل خوندن باشه.
اگر با مفاهیم access modifier ها آشنا باشید.ما گاهی اوقات نیاز داریم که یک متغیر در یونیتی سطح دسترسی private داشته باشد تا وقتی می خواهیم از کلاس های دیگر به آن کلاس دسترسی داشته باشیم آنها نمایش داده نشوند.
مشکل نمایش private در Inspector
در یونیتی فیلد های private را در Inspector نشان داده نمی شود!
چون در حالت عادی یونیتی سطوح دستری private را Serialize نمی کند به خاطر همین باید آنها را Serialize کنید.
- علت اینکه فیلد های public در Inspector قابل مشاهده هستند این است که یونیتی فقط فیلد های public را Serialize می کند.
- از اتریبیوت [SerializeField] برای سریال سازی field/property استفاده می شود.
- از اتریبیوت [Serializable] برای سریال سازی class/struct استفاده می شود.
مطلبی دیگر از این انتشارات
تکنیک Object Pooling چیست و چطور راندمان بازی شما را افزایش می دهد _unity
مطلبی دیگر از این انتشارات
دیزاین پترن Observer در یونیتی
مطلبی دیگر از این انتشارات
بهینه سازی بازی (1) : "Object Pool" به زبان ساده (بخش 2) + پیاده سازی