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

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

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

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

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

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

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

fade کردن در یونیتی

پنجشنبه, ۱ مهر ۱۳۹۵، ۰۲:۳۱ ق.ظ

gameover.blog.ir

کد با حلقه for:

void Fade() {
    for (float f = 1f; f >= 0; f -= 0.1f) {
        Color c = renderer.material.color;
        c.a = f;
        renderer.material.color = c;
    }
}

نکته :

کد بالا حلقه for داره و بهینه نیست.چون حلقه ها پردازنده رو به شدت اشغال می کنند.

میایم از coroutine استفاده می کنیم یعنی توابع نوع IEnumerator  :

IEnumerator Fade() {
    for (float f = 1f; f >= 0; f -= 0.1f) {
        Color c = renderer.material.color;
        c.a = f;
        renderer.material.color = c;
        yield return null;
    }
}

برای مثال برای اجرای fading توسط فشردن کلید F ،برای اجرای تابع فوق داریم:

void Update() {
    if (Input.GetKeyDown("f")) {
        StartCoroutine("Fade");
    }
}



اگر بخوایم این اجرا خودکار و با تاخیر باشه از تابع WaitForSeconds یعنی انتظار برای چند ثانیه استفاده می کنیم که ورودی اش عدد اعشاری از نوع float هست.

مثال: WaitForSeconds(.1f)

کد نمونه:

IEnumerator Fade() {
    for (float f = 1f; f >= 0; f -= 0.1f) {
        Color c = renderer.material.color;
        c.a = f;
        renderer.material.color = c;
        yield return new WaitForSeconds(.1f);
    }
}

هر جا نیاز شد جهت اجرا کد         StartCoroutine("Fade") رو صدا بزنید.


دستور yield باعث میشه کامپایلر اجرای کد رو از جایی شروع کنه که تابع Fade رو صدا زدیم و با فراخوانی بعدی تابع Fade به خطی اشاره می کنه که اجرا متوقف شده بود.

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

نظرات (۰)

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

ارسال نظر

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