«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
حل اشکال مربوط به استفاده از کد OnPointerDown.AddListener در یونیتی_ رفع خطای AddListener :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته

بایگانی
پیوندها

gameover.blog.ir

دوستان یک خطایی رو برای ما ارسال کردند و گفتند رفع اشکال کنید:

http://s8.picofile.com/file/8269334684/OnPinterDownAddListenerErr.jpg



پاسخ:

برای رویداد متد OnClick از کلاس Button یا .... می تونستیم از متد AddListener برای اضافه کردن یک تابع برای گوش دادن به دستور کلیک و اجرای کد دلخواهمون بسازیم.

اما در بعضی ورژن های یونیتی متد AddListener برای ساب کلاس OnPointerDown تعریف نشده و کد زیر مجاز نیست (دچار خطا میشه):

Preview (hint: you can copy and paste the preview into Microsoft Word):

public Button btn1;
void Start() {
btn1.OnPointerDown.AddListener(
()=>{  }
)

برای رفع اشکال از روش قدیمی استفاده می کنیم و از رویدادی مثل کد زیر استفاده می کنیم:
using UnityEngine;
    using UnityEngine.EventSystems;
    public class BT : MonoBehaviour, IPointerDownHandler
    {
    public void OnPointerDown(PointerEventData data)
    {
    }
    }


نکته : در ورژن های جدید یونیتی کامپوننت Event Trigger می دیم و همونجا می تونیم رویداد دلخواه و تابعی که می خوایم به محض وقوع اون رویداد مثلا کلیک یا نگه داشتن لمس و رها نکردن رخ بده رو از زیر شاخه اسکریپت بعد از اختصاص گیم ابجکت مربوط به لیست،انتخاب می کنیم(حتما تابع هم باید public باشه ویلا تو لیست نمیاد)

مثلا برای کد دادن به image کامپوننت Event trigger + Event system بهش می دیم. سپس اسکریپتی می سازیم و تابعی حتما از نوع public توش باید باشه که اونو به event trigger میدیم. به این صورت که اول اسکریپت رو به شی می دیم سپس شی رو می کشیم روی event trigger و بعدش تابع مربوط رو از زیر شاخه ی اسکیپت مربوط انتخاب می کنیم




موافقین ۰ مخالفین ۰ ۹۵/۰۷/۱۱
مدیرکل

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی