Unity Çerez Ders: Scene Panelinde İmlecin Altındaki Bir UI Objesini Kolayca Seçmek

Yayınlandı: 02 Aralık 2023 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Yeniden merhabalar,

Unity’de karmaşık bir UI hiyerarşisine sahip olduğunuzda, Scene panelinden belli bir UI objesini seçmek için defalarca kez objenin üzerine tıklamanız gerekebilir. Bu süreci kolaylaştırmak adına bir editör script yazdım:

Yapmanız gereken, projenizin Editor klasöründe (bu klasör yoksa oluşturun) SceneViewUIObjectPickerContextWindow adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/06edc780beaa4d8705b3564d60886fa6

Artık Scene panelde bir UI objesinin üzerine sağ tıklayarak, o konumda yer alan tüm UI objelerini bir listede görebilir ve istediğinizi kolayca seçebilirsiniz.

Başka derslerde görüşmek dileğiyle!

yorum
  1. tepegözmomentum dedi ki:

    Hocam yazılarınızın o kadar çok yararı dokunuyor ki teşekkür ediyorum size. Bir sorum olacaktı size. Yaptığım mobil oyunları mobile build ettiğimde fps oranında çok ciddi bir düşüş oluyor. Sanırım 30 fps’e sabitleniyor, ne yaptıysam bu sorunu çözemedim. Sorun da olmayabilir, belki ben build alırken yanlış bir şey yapıyorumdur. Bir bilginiz var ise yardımcı olabilir misiniz?

    • yasirkula dedi ki:

      Application.targetFrameRate=60; kodunu çalıştırın. Eğer sorunu çözmezse, Quality Settings’ten V-Sync ayarını değiştirmeyi deneyin. O da çözmezse, oyunu Development Build + Autoconnect Profiler şekilde build alıp Profiler’dan oyunun takılıp takılmadığını bulmaya çalışın.

      • tepegözmomentum dedi ki:

        Sağolun hocam Application.targetFrameRate özelliğini araştırırken https://pastebin.pl/view/6ff51248 şu tip bir kod keşfettim ve sorunu çözebildim.

      • yasirkula dedi ki:

        Sadece targetFrameRate’i 60 yapmak yetiyorsa onu yapmanızı öneririm.

      • tepegözmomentum dedi ki:

        Evet hocam sadece Application.targetFrameRate=60; kullanmamız da yetiyormuş. Attığım uzun kod ile arasında ne fark var anlayamadım. Sağolun tekrardan.

      • yasirkula dedi ki:

        Attığınız kod targetFrameRate’in yaptığı işi daha farklı bir yoldan yapmaya çalışıyordu. Oyunu olabildiğince hızlı render alıp, 60 fps’in üstünde render alırsa her frame zorla azar azar bekletiyordu. Ama bu zaten tam olarak targetFrameRate’in tanımı olduğu için onu kullanmanız daha sağlıklı.

  2. MT dedi ki:

    Üstad yeniden yazılarını görmek çok iyi. Ve yine güzel çözümler üretmişsin tebrikler ve teşekkürler.

Cevap Yazın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.