You need to enable JavaScript to run this app.

Ana içeriğe geç

Unity3D Toast Mesaj Texti Oluşturmak

Unity3D Toast Mesaj Texti Oluşturmak

Yönetici
Unity3D Toast Mesaj Texti Oluşturmak
Merhabalar.

Unity3D içerisinde normalde UI elemanlarımızdan olan Text objesini belli bir komut ile içeriğini değiştirebilir, görünürlüğünü açıp kapatabiliriz fakat tam olarak dediğimiz Toast olayına uygun olmuyor. Mobil programlama ile uğraşan kişiler zaten illaki Toast Message işleminin ne olduğunu biliyorlardır. 
Fakat ben yine de kısa bir özet geçeceğim.
Şöyle ki toast mesaj dediğimiz durum normalde ekranda görünmesini istediğimiz bir yazıyı belli bir süre zarfında istediğimiz farklı renklerde farklı boyutlarda görünüp daha sonra kaybolarak kullanıcıya bir yanıt-bildirge göstermesi demektir.

Gelin Unity3D'de Toast Message olayını nasıl kullanıcağınızı size kodlar aracılığı ile göstreyim.

Öncelikle 1 adet 
Kod:
public Text toastTxt;
oluşturuyoruz.

Sonrasında
Kod:
    void showToast(string text,
        int duration)
    {
        StartCoroutine(showToastCOR(text, duration));
    }

    private IEnumerator showToastCOR(string text,
        int duration)
    {
        Color orginalColor = toastTxt.color;

        toastTxt.text = text;
        toastTxt.enabled = true;

        //Fade in
        yield return fadeInAndOut(toastTxt, true, 0.5f);

        //Wait for the duration
        float counter = 0;
        while (counter < duration)
        {
            counter += Time.deltaTime;
            yield return null;
        }

        //Fade out
        yield return fadeInAndOut(toastTxt, false, 0.5f);

        toastTxt.enabled = false;
        toastTxt.color = orginalColor;
    }

    IEnumerator fadeInAndOut(Text targetText, bool fadeIn, float duration)
    {
        //Set Values depending on if fadeIn or fadeOut
        float a, b;
        if (fadeIn)
        {
            a = 0f;
            b = 1f;
        }
        else
        {
            a = 1f;
            b = 0f;
        }

        Color currentColor = Color.clear;
        float counter = 0f;

        while (counter < duration)
        {
            counter += Time.deltaTime;
            float alpha = Mathf.Lerp(a, b, counter / duration);

            targetText.color = new Color(currentColor.r, currentColor.g, currentColor.b, alpha);
            yield return null;
        }
    }
Ben normalde oyunumu yazarken bütün scriptlerimin dilini global dil olan İngilizce olarak yazıyorum ki yabancı kaynaklarda da paylaşım yaptığımda anlaşılsın.
Kodları size tek tek açıklayayım daha rahat anlayacaksınız.
FadeInAndOut metodumuz textin göründükten sonra verdiğimiz süre içerisinde renginin alpha yani saydamlık değerinin azalmasını sağlıyor.
Counter adında bir sayaç oluşturdum ve duration yani girilen zamandan küçük olduğu sürece hemen altındaki işlemleri yapmasını sağlıyor.
Sayacımıza += fonksiyonu ile geçen süreyi ilave ediyoruz. Alpha değerimize ise Matematik kütüphanesinden Lerp fonksiyonunu kullanarak belli zamanda girilen değerleri arttırıp azaltmamıza yarıyor. Lerp olmasaydı alphayı anında 0'dan 1'e veya 1'den 0'a çekecekti.
daha sonra constructorda bulunan Text'imizin color yani renk değerinin RGB değerini aynı şekilde bırakıp yalnızca alpha değerini değiştirmiş oluyoruz.

showToastCOR metodunda ise orjinal rengimizi belirtip fadeInAndOut metoduyla textimizin enabled'ını true ya çevirerek görünmesini sağlıyoruz. Sonrasında ise tekrar fadeInAndOut metoduyla görünürlüğünü kapatıyoruz. showToast metoduyla da showCor metodunu çağırarak string ve süre değerlerini girmemizi sağlıyoruz. 
Artık işlemler tamam. Kullanmak istediğiniz herhangi bir kısımda ;

Kod:
showToast("KodlukNet.",2);
şeklinde, " " arasındaki değere istediğiniz bir stringi girerek 2 yerine textinizin görünüp kaybolma süresini ekleyerek kolayca kullanabilirsiniz.
[-]
Bunu beğenenler:
   ATASVN, EnkaPRO

İçerik sağlayıcı paylaşım sitesi olarak hizmet veren Kodluk sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.K'nın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Sitemiz hakkında yapılacak tüm hukuksal şikayetleri bağlantısından bize ulaşıldıktan en geç 3 (üç) gün içerisinde ilgili kanunlar ve yönetmenlikler çerçevesinde tarafımızca incelenerek, gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.