Unity Dairesel Sağlık Barı Örneği

Hepinize tekrar merhaba (ve hayırlı bayramlar),

Bu örneğim Unity‘de daire şeklinde basit bir sağlık barı yapımı hakkında olacak. Sağlık barını oluşturmak için Unity’nin UI sistemini kullandım.

Örneği test etmek için tek yapmanız gereken şu unitypackage‘ı projenize import edip oradaki scene‘i açmak: https://www.dropbox.com/s/j1zg0c3oon2zzzf/DaireselSaglikBari.unitypackage?dl=0

Örnekteki görselleri ve scripti kendi projelerinizde dilediğinizce kullanabilirsiniz. Örnekten iki resim paylaşacak olursam:

resim1 resim2

Bu sağlık barındaki en önemli olay SaglikBariRenk objesindeki Image component‘inin “Radial 360 – Filled” modunda çalışması. Buradaki “Radial 360″ı örneğin “Vertical” diye değiştirirseniz sağlık barı Diablo tarzı yukarıdan aşağıya doğru azalır.

Umarım faydalı olur. Başka derslerde görüşmek üzere!

Furkan için bir cevap yazın Cevabı iptal et


9 yanıt

  1. Burak Cem Dursun Avatar
    Burak Cem Dursun

    Hocam scripti güncelleyecek misiniz?

    1. yasirkula Avatar

      Tüm Javascript derslerimi güncellediğimi düşünüyordum ama bu kalmış 😀 Şimdi güncelledim.

  2. Furkan Avatar
    Furkan

    aynen hocam slider olarak daha iyi oldu ama bu levelleri nasıl ToString olarak yazdıracağız birde int olması lazım değil mi

    baslangıc1.text= ToString();
    bitis1.text = ToString()

    çünkü böyle yapınca ekranda
    slider(level) yazıyor.

    1. yasirkula Avatar

      int değişkenleriniz olacak ve onların ToString()’lerini intDegisken.ToString() şeklinde çağıracaksınız.

  3. Furkan Avatar
    Furkan

    hocam birde level geçişlerinde scane geçişi olmayacak tek bir scane de tüm leveller geçecek eğer level save olduysa önceki leveldeki objeler silinecek yani çoklu scane kullanmıyacağım sıkıntı olur mu

    1. yasirkula Avatar

      int baslangic, bitis; değişkenleriniz olsun. Oyunun başında bu iki değişkenin değerini kayıtlı veriden şu şekilde çekebilirsiniz:

      baslangic = PlayerPrefs.GetInt(“Baslangic”, 1); // Eğer kayıtlı veri yoksa değeri 1 olacak
      bitis = PlayerPrefs.GetInt(“Bitis, 5); // Eğer kayıtlı veri yoksa değeri 5 olacak

      İki tane de Text objeniz olsun. Bunların text değişkenlerine baslangic.ToString() ve bitis.ToString()’i değer olarak verebilirsiniz.

      Bar dolunca şöyle bir kod çalıştırabilirsiniz:

      scrollbar.value = 0f; // Scrollbar’ı sıfırla

      baslangic = bitis; // baslangic’in değerini bitis yap
      bitis = bitis + 5; // bitis’i 5 artır

      // baslangic ve bitis’i kaydet
      PlayerPrefs.SetInt(“Baslangic”, baslangic);
      PlayerPrefs.SetInt(“Bitis”, bitis);
      PlayerPrefs.Save();

      Ardından iki Text objesinin değerini yine ToString’ler ile güncelleyebilirsiniz.

      Oyuncu yanınca 7. seviyeden 5. seviyeye düşmek için vs. scrollbar’ın değerini sıfırlayıp yukarıdaki PlayerPrefs.GetInt fonksiyonlarını tekrar çağırabilirsiniz. Ardından iki Text objesini tekrar güncelleyin.

      Level save olduysa önceki leveldeki objeleri silmeyi, oyunun başında PlayerPrefs.GetInt’ler ile baslangic ve bitis’e değerlerini verdikten sonra yapabilirsiniz. Örneğin baslangic 5 ise, 1-5 level’lar arası objeleri yok edebilirsiniz.

      1. Furkan Avatar
        Furkan

        hocam peki scoll barda nasıl artıracağız örneğin score 10 olunca artsın istiyorum

        böyle mi olacak ama bu seferde Scrollbar.value=1f; bu komut hata veriyor

        int baslangıc;
        int bitis;
        public Text baslangıc1;
        public Text bitis1;
        void Start()
        {
        baslangıc = PlayerPrefs.GetInt(“Baslangic”,1);
        bitis = PlayerPrefs.GetInt(“bitis”, 5);
        baslangıc1.text= ToString();
        bitis1.text = ToString();
        if (score == 10)
        {
        Scrollbar.value = 1f;
        }

        }

      2. yasirkula Avatar

        “public Scrollbar Scrollbar;” değişkeni tanımladınız mı? Scrollbar.value’ye 0 ile 1 arasında bir değer vermeniz lazım. Örneğin yarısı dolu olsun isterseniz değerini 0.5f yapmanız lazım. Ayrıca aslında Scrollbar değil de Slider kullanmanız daha mantıklı olabilir bu bar için.

  4. Furkan Avatar
    Furkan

    hocam merhaba ben oyunuma level barı gibi bişey yaptım bunu scrollbarla yaptım ben şimdi score 300 olunca scroll barda ilerlemesini istiyorum 1 le 5 arasında bir aralık olacak scroll barda 5. seviyeye gelince score ve seviyeyi save edecek sonra 5 ten 10 a kadarki seviye aralığı gözükecek bunu kodla nasıl yaparız ayrıca eğer 3 seviyeyse 5e ulaşmamışsa ve canı fln bitmişse tekrar o barda gelinen yer silinecek ve score da silinecek eğer 5. seviyeye ulaşmışsak ve 7.seviyesinde can fln bitmişse 5.seviyeye girdiğimiz scorla başlayacağız ve yine aynı şekilde o barda gelinen seviye silinecek bunu nasıl kodlayacağım çoğu yerde araştırdım ama benzer bişey bulamadım bi helix jump oyunundaki level barı benziyor.