Merhabalar,

Bazen Unity‘nin UI sisteminde, her çözünürlükte keskin kenarlara sahip daireler göstermek isteyebilirsiniz. Bunun için çok yüksek çözünürlüklü bir daire sprite’ı veya özel shader’lar kullanabilirsiniz. Alternatif olarak, şimdi paylaşacağım script’i kullanabilirsiniz:

Yapmanız gereken, projenizde CircleGraphic adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/d09bbc1e16dc96354b2e7162b351f964

Ardından Canvas‘ınızdaki içi boş bir GameObject’e Circle Graphic component’ini eklemeniz yeterli.

Sonraki derste görüşmek üzere!

sıddık çiçek için bir cevap yazın Cevabı iptal et


10 yanıt

  1. sıddık çiçek Avatar

    Hocam o hatayı çözdüm de aynı koddan birkaç farklı scripte ekleyince hataları vermeye başladğını anladım fazlasını sildim. benim amacım dairesel bir şekilde labirent oluşturmaktı ama dairesel bir obje bulamadım. Sizce nasıl bir şey yapabilirim?

    1. yasirkula Avatar

      Şu tarz bir labirentten mi bahsediyorsunuz? Eğer öyleyse, maalesef benim kodum işinize yaramaz çünkü 1) dairede kesikler oluşturmak kodu düzenlemeden (veya Mask kullanmadan) mümkün olmaz ve 2) bu kod UI sistemi ile çalıştığı için, fizik motoruyla etkileşime giremez (eğer fizik kullanacaksanız). Siz bu labirenti prosedürel oluşturmak istiyorsanız o zaman nasıl yapabilirsiniz şu an hiç cevap veremiyorum, üzerine çok düşünmem gereken bir konu bu ve maalesef buna şu anda vakit ayıramayacağım.

      1. sıddık çiçek Avatar

        hımm anladım hocam yine de çok sağolun. Peki küpü eğmek gibi bir durum söz konusu değil değil mi Unity ‘de?

      2. yasirkula Avatar

        – Küpü değil de daha çok poligonlu objeleri eğmeye yarayan bir shader var: https://assetstore.unity.com/packages/vfx/shaders/curved-world-2020-173251. İşinize bence yaramaz çünkü bu eğme işlemi collider’ları kapsamıyor, yani fizik motoru ile beraber istediğiniz gibi çalışmaz
        – Bir eğri üzerinde mesh oluşturmaya yarayan bir eklenti var: https://assetstore.unity.com/packages/tools/modeling/splinemesh-104989
        – Veya Unity’de procedural mesh oluşturmakla ilgili yabancı kaynakları takip ederek, kendi mesh’inizi kodla kendiniz oluşturabilirsiniz

      3. sıddık çiçek Avatar

        tamamdır hocam zaman ayırdığınız için çok teşekkür ederim. 🙂

      4. sıddık çiçek Avatar

        İnceleyeceğim inşallah

  2. sıddık çiçek Avatar

    [CanEditMultipleObjects]
    9. satırda bu hata veriyor hocam.

    1. yasirkula Avatar

      Aa evet doğru. O satırı silebilirsiniz. Ben de kodu düzelttim.

      1. sıddık çiçek Avatar

        hocam peki 2 sınıf var sınıf ismi ile script ismi aynı değil hatası veriyor. ne yapacağım

      2. yasirkula Avatar

        Tam hata mesajını görebilir miyim?