| کانال توسعهدهندگان بازی |
🎯 کنترل دقیق برخوردها در Unity با LayerMask
خیلی وقتها افت فریم بازی از تعداد بالای collision check میآد، نه از گرافیک. مخصوصاً وقتی برای هر چیز کوچیکی از Physics.Raycast یا Overlapها استفاده میشه.
یک ترفند ساده ولی خیلی تاثیرگذار اینه که برخوردها رو با Layerها و LayerMask محدود کنی تا فیزیک فقط روی چیزهای مهم حساب کنه 🚀
مثلاً برای تیر اسلحه فقط دشمنها رو چک کن، نه کل صحنه:
public LayerMask enemyLayer;
void Shoot()
{
Ray ray = new Ray(transform.position, transform.forward);
if (Physics.Raycast(ray, out var hit, 100f, enemyLayer))
{
// فقط اگر به enemy خورد
// Damage logic...
}
}
📌 نکتهها:
- برای هر system (مثل تیر، AI، interactableها) یک یا چند Layer مشخص کن.
- در منوی Project Settings → Physics، ماتریس برخورد (Layer Collision Matrix) رو تنظیم کن تا بعضی Layerها کلاً با هم برخورد نداشته باشن.
این کار هم CPU رو سبکتر میکنه، هم دیباگ برخوردها رو خیلی تمیزتر و قابلفهمتر نگه میداره 😌
ℹ️ مرجع رسمی:
Unity LayerMask Documentation
🔖 #GameDev #بازیسازی #Unity #Physics #Collision #LayerMask #Performance #GameDev
👤 Developix
💎 Channel: @DevelopixGame
343 ·