Unity Learning: post #3042 — TG.ME

Unity Learning🎦 #کلیپ #آموزش مفهوم Scriptable Object در یونیتی 🔍 مفهوم ScriptableObject (که به اختصار SO هم گفته می‌شود) یکی از مهم‌ترین و کاربردی‌ترین قابلیت‌های موتور بازی‌سازی یونیتی است. به‌زبان ساده، یک اسکریپت خاص است که فقط برای نگهداری داده‌ها ساخته شده و برخلاف…
⭕️ مزایای استفاده از ScriptableObject

1️⃣ مدیریت بهینه حافظه (Flyweight Pattern)

به جای اینکه هر دشمن در بازی، یک کپی از داده‌های آماری خود (مثل جان و قدرت) داشته باشد، همه آن‌ها به یک فایل داده مشترک ارجاع می‌دهند. این یعنی تنها یک نسخه از داده در حافظه ذخیره می‌شود و مصرف حافظه به شدت کاهش می‌یابد .

2️⃣ جداسازی داده از منطق (Data-Driven Design)

طراحان بازی و برنامه‌نویسان می‌توانند همزمان و بدون تداخل کار کنند. برنامه‌نویس منطق (Logic) را می‌نویسد و طراح مستقیماً در پنجره Inspector داده‌ها را تغییر می‌دهد، بدون اینکه نیازی به دستکاری کد یا صحنه‌های سنگین داشته باشد .

3️⃣ ذخیره‌سازی و پایداری داده‌ها

تغییراتی که روی یک ScriptableObject در حالت Play Mode اعمال می‌کنید، پس از خروج از این حالت نیز ذخیره می‌شوند و از بین نمی‌روند. این ویژگی برای تنظیم دقیق (Tuning) و بالانس بازی فوق‌العاده کاربردی است.

⭕️ کاربردهای رایج

🔹 مخزن داده (Data Container): ذخیره اطلاعات کاراکترها، آیتم‌ها، سلاح‌ها و تنظیمات سطح .

🔹 متغیرهای سراسری (Global Variables): جایگزینی برای متغیرهای Static و Singleton برای مدیریت داده‌هایی مثل تعداد سکه‌ها یا وضعیت بازی در صحنه‌های مختلف .

🔹 سیستم رویداد (Event Channel): ایجاد یک سیستم پیام‌رسانی کاملاً غیرمتمرکز جهت مقدار دهی در بخش های مختلف

@UnityLearning
❤9
August 9, 2026 584 5