⭕️ مزایای استفاده از ScriptableObject
1️⃣ مدیریت بهینه حافظه (Flyweight Pattern)
به جای اینکه هر دشمن در بازی، یک کپی از دادههای آماری خود (مثل جان و قدرت) داشته باشد، همه آنها به یک فایل داده مشترک ارجاع میدهند. این یعنی تنها یک نسخه از داده در حافظه ذخیره میشود و مصرف حافظه به شدت کاهش مییابد .
2️⃣ جداسازی داده از منطق (Data-Driven Design)
طراحان بازی و برنامهنویسان میتوانند همزمان و بدون تداخل کار کنند. برنامهنویس منطق (Logic) را مینویسد و طراح مستقیماً در پنجره Inspector دادهها را تغییر میدهد، بدون اینکه نیازی به دستکاری کد یا صحنههای سنگین داشته باشد .
3️⃣ ذخیرهسازی و پایداری دادهها
تغییراتی که روی یک ScriptableObject در حالت Play Mode اعمال میکنید، پس از خروج از این حالت نیز ذخیره میشوند و از بین نمیروند. این ویژگی برای تنظیم دقیق (Tuning) و بالانس بازی فوقالعاده کاربردی است.
⭕️ کاربردهای رایج
🔹 مخزن داده (Data Container): ذخیره اطلاعات کاراکترها، آیتمها، سلاحها و تنظیمات سطح .
🔹 متغیرهای سراسری (Global Variables): جایگزینی برای متغیرهای Static و Singleton برای مدیریت دادههایی مثل تعداد سکهها یا وضعیت بازی در صحنههای مختلف .
🔹 سیستم رویداد (Event Channel): ایجاد یک سیستم پیامرسانی کاملاً غیرمتمرکز جهت مقدار دهی در بخش های مختلف
@UnityLearning
9August 9, 2026 584 5