💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ راضیه کارگر
سوال در مورد tag
محسن موحد حل شده توسط محسن موحد

سلام. وقت بخیر

تفاوت other.gameObject.tag با other.tag  در چیست؟  در اجرا تفاوتی مشاهده نکردم.

ممنون

سلام،

  • other.gameObject.tag: این عبارت به طور مشخص داره می‌گه که "برو و تگ مربوط به gameObject این other رو بگیر."
  • other.tag: این عبارت به طور مستقیم تگ خود other رو برمی‌گردونه.

در اکثر موارد، other همون Collider یا Collider2D هست که بهش برخورد کردی. پس در عمل other.tag و other.gameObject.tag نتیجه یکسانی دارن.

مثال ساده:

فرض کن یه اسکریپت داری که می‌خوای وقتی یه شیء به یک تگ خاص برخورد کرد، یه پیامی توی کنسول نمایش بده.

void OnCollisionEnter(Collision other) {
    if (other.gameObject.tag == "Enemy") {
        Debug.Log("Collided with an enemy!");
    }
}
void OnTriggerEnter(Collider other) {
    if (other.tag == "Enemy") {
        Debug.Log("Triggered with an enemy!");
    }
}

تو این مثال، توی هر دو حالت داریم چک می‌کنیم که آیا تگ شیء برخوردی "Enemy" هست یا نه. فرقی نمی‌کنه از other.gameObject.tag استفاده کنی یا other.tag، هر دو کار می‌کنن.

اگه بخوای خیلی دقیق و مشخص باشی، other.gameObject.tag شاید کمی خواناتر باشه و نشون بده که دقیقا تگ کدوم gameObject رو داری چک می‌کنی. ولی برای راحتی، همون other.tag هم کافیه و درست کار می‌کنه.

بهترین پاسخ
محسن موحد ۰۸ تیر ۱۴۰۳، ۲۱:۰۱