| کانال توسعهدهندگان بازی |
در بازیهای موبایل و حتی PC، یکی از قاتلهای فریمریت، تعداد زیاد Draw Call هست. خوشبختانه در Unity برای آبجکتهای ثابت صحنه، راهحل سادهای وجود داره: Static Batching 🧱
وقتی یک سری Mesh که حرکت نمیکنن رو Static میکنی، Unity میتونه اونها رو توی چند Mesh بزرگتر ترکیب کنه و بهجای دهها Draw Call، فقط چند تا بفرسته سمت GPU. نتیجه: CPU سبکتر، فریمریت پایدارتر ✅
نمونه استفاده (C#):
using UnityEngine;
public class MarkStatic : MonoBehaviour
{
public GameObject[] staticObjects;
void Start()
{
foreach (var go in staticObjects)
{
// فقط برای آبجکتهایی که حرکت، مقیاس یا چرخش ندارن
go.isStatic = true;
}
}
}
نکتهها 📝
• برای دیوار، ساختمان، سنگ، درختهای ثابت و… عالیه.
• برای آبجکتی که قرارِ حرکت کنه، از Static Batching استفاده نکن؛ باعث هزینه اضافی و باگهای عجیب میشه.
موقع پروفایل گرفتن، قبل و بعد از فعالکردن Static Batching، تعداد Draw Call رو توی Stats یا Profiler چک کن و تفاوتش رو ببین.
مرجع رسمی: Unity Manual – Draw Call Batching
امتحانش روی یک صحنه شلوغ باعث میشه تاثیرش رو خیلی سریع حس بشه 🚀
🔖 #GameDev #بازیسازی #Unity #Performance #DrawCall #StaticBatching #GameDev #Optimization
👤 Developix
💎 Channel: @DevelopixGame
2 · 369 ·