اجرای یکد بعد از گذشت یک زمان با متد Invoke در یونیتی
قبلا در اینپست، به روشی اشاره کردیم که در آن با استفاده از متد StartCoroutine میتوانستیم کدی را بعد از گذشت یک زمان مشخصی اجرا کنیم. و حالا گرچه آن روش برای خود مزیتهایی داشت، اما در اینجا میخواهیم روش دیگری که سادهتر از StartCoroutine میباشد را معرفی کنیم.
در کلاسهایی که از MonoBehaviour مشتق میشوند، متدی به نام Invoke تعریف شده است! این متد، نام متد دیگری را که در اسکریپت نوشتهایم از ما دریافت کرده آن را بعد از گذشت یک زمان مشخصی اجرا میکند.
تنظیم یک متد در Invoke
فرض کنید متدی با نام TimeFinished داریم که میخواهیم پس از یک ثانیه اجرا شود؛ بنابراین به صورت زیر عمل میکنیم:
Invoke("TimeFinished", 1);
لغو متد تنظیم شده
فرض کنید متدی را تنظیم کردهایم که بعد از گذشت یک دقیقه اجرا خواهد شد؛ اما وسط کار شرایطی پیشی میآید که این متد نباید اجرا شود و در آن صورت میتوان به صورت زیر متد تنظیم شده را لغو کرد:
CancelInvoke("TimeFinished");
همانطور که میبینید، از متد CancelInvoke برای انجام اینکار استفاده کردهایم.
بررسی تنظیم بودن یک متد
برای بررسی اینکه یک متد، Invoke شده است یا خیر، از متد IsInoking به صورت زیر استفاده میشود:
bool isInvoking = IsInvoking("TimeFinished");
نظرات ثبت شده بدون دیدگاه