Unity 3D TR Forum

Orjinalini görmek için tıklayınız: Bir panel açıldığında arkaplanda kalan obje işlevlerini devre dışı bırakma?
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Oyun esnasında oyun alanımda bulunan bir butona click yapıldığında bir panel açılıyor. Ben açılan bu panel açıldığında ,panelin arka planında kalan diğer objelerin işlevlerini deaktif yapmak istiyorum. Yani panel açıldığında sadece panelde bulunan butonlara click yapılsın. Bunu nasıl yapabilirim ? Ekranda bulunan prefabların ilgili scriptlerine ulaşıp enable özelliklerini false yapmayı denedim ama objeleri bulamıyor?
Objelere ulaşmak zorundasınız kapatmak için ama Instantiate ettiğiniz prefabın arkasından bübütün ekranı kaplayan bir image birlikte instantiate edip bu imageyi görünmez yaparsınız galiba arkadakılerine dokunulmuyordu
Örnek
Canvas
-Buton
-prefab
---ekranikaplayangorunmezimage
---Buton2

Hatırladıgım UI da her zaman en altaki obje üstündeki objenin çalışması engelliyor
Ama tabiki o objelere ulaşıp onları enabled false yapmak daha kolay
(15-09-2018, Saat: 16:44)abayir41 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Objelere ulaşmak zorundasınız kapatmak için ama Instantiate ettiğiniz prefabın arkasından bübütün ekranı kaplayan bir image birlikte instantiate edip bu imageyi görünmez yaparsınız galiba arkadakılerine dokunulmuyordu
Örnek
Canvas
-Buton
-prefab
---ekranikaplayangorunmezimage
---Buton2

Hatırladıgım UI da her zaman en altaki obje üstündeki objenin çalışması engelliyor
Ama tabiki o objelere ulaşıp onları enabled false yapmak daha kolay

İmage i ekledim, panel aktif olduğunda image de aktif oluyor ve arka planda kalan objelere tıklayamıyorum. Ama hala instantiate yatığım yani cloneladığım butonları tıklayıp, sürükleyebiliyorum ?
SSiz hirerarşinizi buraya atın ve hangilerin tıklanmasını istiyorsanız söyleyin
iki yöntem paylaşayım.
1- Event trigger  (on pointer vs.)
2- static bool değişken oluştur false kalsın. arka planda pasif olmasını istediğin objelere if önlemi al. yani değişken false ise çalıştır gibi. butona tıklayınca değişkeni true yaparsın olur biter. eğer aynı scriptten ulaşacaksan static olması gerekmez, static değişken sürekli bellekte tutulur her scriptten kolayca ulaşılabilir, fakat fazlası zarar şişirir Smile

eğer sadece tıklamayı engellemek istiyorsan event trigger daha mantıklı olacaktır. canvasa komple maske atarak direk ekranda hiç bişeye tıklanmaması sağlanabilir veya ekranın bazı yerlerine de maske uygulayabilirsin. You tubede bir çok uygulama videosu vardır
(15-09-2018, Saat: 20:41)abayir41 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!SSiz hirerarşinizi buraya atın ve hangilerin tıklanmasını istiyorsanız söyleyin

canvas
-ekranda göstermek istediğim panel-------->aktif yapmak istediğim panel
--ekranı kaplayan image
---panel harita------------>bu paneldekilerin tıklama özelliği olmasını istemiyorum
Şimdi imaknınız varsa ki öyle düşünmüyorum sıralama şöyle olursa düzelir diye tahmin ediyorum
Canvas
--panel harita
-----ekrankaplayanimag
---------ekranda göstermek istediğiniz panel

Eyalay arkadaşımızın tavsiyeleride çok mantıklı onlarıda yapabilirsiniz

Bir buton component da on click() var oradan aartıya basıp kullanılması istemediğiniz objeleri atıp özelliklerini değiştirebilirsiniz örnek olarak bir buton atadıniz sağdan seçme yerinden componentlerını oynayabiliyorsunuz
Butonun interactable özelliğini kapatırsaniz buton inactive oluyor yada gameobject bböslümünden setactive kısmindan kapatırsanız obje kapanır
(16-09-2018, Saat: 00:51)abayir41 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Şimdi imaknınız varsa ki öyle düşünmüyorum sıralama şöyle olursa düzelir diye tahmin ediyorum
Canvas
--panel harita
-----ekrankaplayanimag
---------ekranda göstermek istediğiniz panel

Eyalay arkadaşımızın tavsiyeleride çok mantıklı onlarıda yapabilirsiniz

Bir buton component da on click() var oradan aartıya basıp kullanılması istemediğiniz objeleri atıp özelliklerini değiştirebilirsiniz örnek olarak bir buton atadıniz sağdan seçme yerinden componentlerını oynayabiliyorsunuz
Butonun interactable özelliğini kapatırsaniz buton inactive oluyor yada gameobject bböslümünden setactive kısmindan kapatırsanız obje kapanır

Tamamdır deneyeceğim , teşekkürler