تریگر (Trigger) در Unity: راهنمای کامل برای بازی‌سازان

مقدمه

یکی از مفاهیم اساسی در ساخت بازی‌های تعاملی در موتور Unity، استفاده از تریگر (Trigger) است. اگر بخواهید زمانی که بازیکن وارد منطقه‌ای خاص شد، درِ یک قلعه باز شود یا دشمنی از کمین بیرون بیاید، به تریگر نیاز دارید. در این مقاله، به صورت کامل و گام‌به‌گام با مفهوم Trigger در یونیتی، نحوه پیاده‌سازی آن، تفاوت آن با برخوردهای معمول (Collision)، نکات مهم در بهینه‌سازی و مثال‌های عملی آشنا می‌شویم.

 

تریگر چیست؟

در Unity، تریگرها مناطقی هستند که با استفاده از Colliderها مشخص می‌شوند، اما برخلاف برخوردهای فیزیکی معمول، آنها باعث برخورد فیزیکی نمی‌شوند. بلکه صرفاً عبور یک شیء از درون این ناحیه می‌تواند رویدادی را فعال کند.

تعریف ساده:
 

تریگر یک "نقظه بررسی برخورد غیر فیزیکی" است که در آن می‌توان ورود، ماندن یا خروج اشیاء را شناسایی کرد.

تریگر چیست ؟ در یوتوب مشاهده کنید 
 

چگونه یک Trigger بسازیم؟
 

۱. افزودن Collider

برای اینکه یک GameObject بتواند به عنوان تریگر عمل کند، باید دارای یک Collider (مثلاً Box Collider یا Sphere Collider) باشد.
 

۲. فعال کردن گزینه Is Trigger

در Inspector، تیک گزینه Is Trigger را برای Collider فعال کنید.
 

۳. افزودن یک اسکریپت با توابع تریگر

اسکریپتی به شیء مورد نظر اضافه کنید که شامل توابع زیر باشد:

void OnTriggerEnter(Collider other){
Debug.Log("وارد تریگر شد: " + other.name);
}
void OnTriggerStay(Collider other){
Debug.Log("درون تریگر باقی مانده است: " + other.name);
}
void OnTriggerExit(Collider other) {
Debug.Log("از تریگر خارج شد: " + other.name);
}

 

تریگر vs برخورد فیزیکی (Collision)

ویژگی تریگر (Trigger) برخورد (Collision)
فیزیک واقعی دارد؟ ❌ خیر ✅ بله
امکان عبور از آن هست؟ ✅ بله ❌ خیر
استفاده معمول فعال‌سازی رویدادها بدون مانع فیزیکی برخورد اجسام، توقف یا فشار دادن

 

 

نکات مهم در استفاده از Trigger

۱. Rigidbody فراموش نشود!

برای اینکه رویدادهای Trigger کار کنند، حداقل یکی از دو شیء (شیء دارای تریگر یا شیء برخوردکننده) باید Rigidbody داشته باشد.

  • اگر می‌خواهید شیء ثابت باشد، از Kinematic Rigidbody استفاده کنید.
     

۲. لایه‌بندی (Layer Mask)

با استفاده از Layer و تنظیم Physics settings می‌توانید کنترل کنید کدام اشیاء با یکدیگر تریگر فعال کنند یا خیر.
 

۳. Trigger با 2D

در بازی‌های دوبعدی، از OnTriggerEnter2D، OnTriggerStay2D و OnTriggerExit2D استفاده کنید.

 

مثال کاربردی: باز شدن در هنگام ورود بازیکن

فرض کنیم می‌خواهید در هنگام ورود بازیکن به منطقه‌ای خاص، یک در باز شود:

public class DoorTrigger : MonoBehaviour {
public Animator doorAnimator;
void OnTriggerEnter(Collider other) {
if (other.CompareTag("Player")) {
doorAnimator.SetTrigger("Open");
}}}

  1. برای Player باید Tag با نام "Player" تنظیم شود.

  2. Animator شامل یک Animation برای باز شدن در باشد.

 

اشکالات رایج و نحوه رفع آن‌ها

مشکل دلیل احتمالی راه‌حل
OnTriggerEnter اجرا نمی‌شود Rigidbody وجود ندارد به یکی از اشیاء Rigidbody اضافه کنید
برخورد فیزیکی اتفاق می‌افتد Is Trigger فعال نشده تیک Is Trigger را بزنید
تریگر برای Player کار نمی‌کند Tag اشتباه یا Collider غیرفعال Tag را بررسی و Collider را فعال کنید

 

کاربردهای رایج Trigger در Unity

  1. باز کردن درب‌ها

  2. فعال کردن دشمنان

  3. نمایش پیام‌ها

  4. انتقال به مرحله بعد

  5. راه‌اندازی کات‌سین (Cutscene)

  6. شمارش ورود/خروج اشیاء از مناطق خاص

 

نکات بهینه‌سازی

  1. از کلاسی مانند Object Pooling برای اشیائی استفاده کنید که مکرراً وارد یا خارج می‌شوند.

  2. تا جای ممکن از Trigger در اشیاء ایستا (Static) استفاده نکنید مگر اینکه نیاز واقعی باشد.

  3. Triggerهای سنگین را به صورت منطقی بخش‌بندی کنید تا در هر فریم چک زیاد انجام نشود.

 

نتیجه‌گیری

تریگرها ابزار قدرتمندی برای ایجاد تعاملات پیچیده در بازی‌ها هستند. آنها به شما امکان می‌دهند بدون نیاز به فیزیک واقعی، رویدادهای تعاملی بسازید. چه در بازی‌های دوبعدی ساده باشید و چه در پروژه‌های سه‌بعدی پیچیده، دانستن نحوه استفاده از Trigger یکی از مهارت‌های پایه‌ای هر توسعه‌دهنده Unity محسوب می‌شود.

اشتراک گذاری

مهدی یدی

مهدی یدی

یک برنامه نویس ☕ ASP.Net Core - MAUI - WPF - Unity فعالیت می کنم.از تولید محتوا لذت میبرم. و دوست دارم محتوای پارسی را بروز نگهدارم 😎

مقالات مرتبط

ثبت دیدگاه

0 دیدگاه

دوره‌های سایت

مقاله‌های اخیر

‌نرم افزار و ابزار

بازی‌ها منشتر شده

    (بزودی)

محبوب ترین مقاله‌ها

Captcha Active