بدون شک با مفهوم شمارش معکوس آشنایی دارید؛ به این صورت که زمان از یک مقدار مشخص شروع شده و به عقب برمیگردد تا به صفر برسد و در این حالت انتظار داریم زمانی که عدد به صفر رسید یا شمارش معکوسمان تمام شد، کاری انجام شود.
البته ما قبلا در اینپست و اینپست، به روشهایی برای اجرای کد بعد از گذشت یک زمان مشخصی پرداختیم اما چیزی که در اینجا با آن کارخواهیم کرد یک کلاس کامل برای پیاده سازی شمارش معکوس با امکان نمایش آن برروی UI خواهد بود.
ابتدا وارد اینلینک در سایت گیتهاب شده و کلاس CountDown را به پروژهی خود اضافه کنید. سپس وارد یونیتی شده و اسکریپت را به آبجکتی اضافه کنید.
مقادیر در Inspector
- hour: ساعت
- minute: دقیقه
- second: ثانیه
- monitor: یک Text برای نمایش خروجی
- format: فرمت نمایش خروجی
حرف H در این فرمت با ساعت، حرف M با دقیقه و حرف S با ثانیه حایگزاری میشود. - isTwoDigit: اگر true باشد، خروجی ساعت، دقیقه و ثانیه حتی زمانی که مقدارشان یک رقمی باشند، سمت چپشان یک صفر نمایش داده خواهد شد تا دو رقمی شوند.
متدها
- متد Refresh: ممکن است در کدنویسی ویژگیها (ساعت، دقیقه و ثانیه) را تغییر دهید، در این صورت میتوانید این متد را فراخوانی کنید.
رویدادها
یک اسکریپت جدید بسازید و به همان آبجکتی که CountDown را اضافه کردهاید، اضافه کنید تا رویدادهای آن را تنظیم کنیم:
- رویداد تغییر مقدار: باهربار تغییر مقدارِ زمانها، اجرا میشود.
به صورت زیر پیاده کنید:
void Start() { GetComponent<CountDown>().OnCountDownValueChanged += OnCountDownValueChanged; } private void OnCountDownValueChanged(CountDown countDown) { }
- رویداد اتمام شمارش معکوس: با صفر شدن زمان، اجرا میشود.
به صورت زیر پیاده کنید:
void Start() { GetComponent<CountDown>().OnCountDownFinished += OnCountDownFinished; } private void OnCountDownFinished(CountDown countDown) { }
مواردی که نیاز دارید را از قسمت نظرات مطرح کنید تا به این کلاس اضافه کنیم. 🙂
کلاس جالب بود. خسته نباشید.