Şimdi Ara

Unity - Liste'deki bütün objelerin child'larını kontrol etmek

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
12
Cevap
0
Favori
1.491
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Unity'de listede olan bütün objelerin child'larını yani çocukları var mı yok mu diye kontrol ettirmek istiyorum ama yapamadım.

    kodum bu
    for (int x = 0; x < slots.Count; x++) {
    if (slots [x].transform.childCount > 0) {
    //do stuff
    }
    }


    şimdi bu kodda listede sadece 1 objenin child'ı var mı onu kontrol ediyor ama ben bütün objelerin kini kontrol etmek istiyorum. bunu nasıl yapabilirim aranızda bilen varsa yardımcı olabilir mi?

    Unity - Liste'deki bütün objelerin child'larını kontrol etmek

    Not: objeler bir kelimenin harf sayısına göre instantiate ediliyor. yani "if" operatöründe belli bir sayı girilemez.



    < Bu mesaj bu kişi tarafından değiştirildi Guest-97901DBF5 -- 30 Ocak 2018; 11:7:31 >







  • yardım edecek kimse yok mu?
  • Hocam açıkçası unity bilmiyorum, ancak c#'ı biraz biliyorum. Attığınız kodda nasıl oluyorda sadece bir objenin childlarına bakıyor anlayamadım açıkçası. Çünkü orada bir for döngüsü var, slots[0],slots[1],.. diye kontrol etmesi gerek. Acaba sadece bir obje için birden fazla slot mu oluyor? Tam olarak açıklayabilirseniz yardımcı olmaya çalışırım inşaallah.
  • quote:

    Orijinalden alıntı: imammmm

    Hocam açıkçası unity bilmiyorum, ancak c#'ı biraz biliyorum. Attığınız kodda nasıl oluyorda sadece bir objenin childlarına bakıyor anlayamadım açıkçası. Çünkü orada bir for döngüsü var, slots[0],slots[1],.. diye kontrol etmesi gerek. Acaba sadece bir obje için birden fazla slot mu oluyor? Tam olarak açıklayabilirseniz yardımcı olmaya çalışırım inşaallah.

    for döngüsü ile bütün array'deki slotları sayıyor. if'te de slotların içinde obje varsa bir iş yapıyor ama ayrı objelerin içine bakmıyor tek objeye bakıyor. ben array'de bulunan bütün objelerin içini kontrol etmesini istiyorum. yalnız slotların sayısı değişebiliyor. çünkü kelimenin harf sayısına sayısına göre slot oluşturuyor. mesela "string" diyelim. "string" 6 harfli, 6 tane slot oluşturuyor.




  • Bir foreach döngüsü ile yapabilirsin dostum. Foreach döngüsü for döngüsünden farklıdır, kaç kez döneceğini sen belirlemezsin , yazdığın array'a göre otomatik olarak belirlenir.
    Parent objeyi foreach döngüsüne koyduğunda her bir gameobject sana childları verecektir.
  • dangerlord63 D kullanıcısına yanıt
    ya aslında for döngüsünde de array'in sayısı kadar dönüyo ben belirlemiyorum. ben sadece array'de bulunan her elementin içinde child varsa birşeyin yapılmasını istiyorum ama olmuyor
  • başka bilen yok mu arkadaşlar?
  • Slots dizisinin tam olarak CellPanel objesini referans gösterdiğinden emin misin ? Aşağıda ki kodu direk CellPanel gameobjesini referans kullanarak denersen işe yaraması lazım.





    foreach(Transform cell in CellPanel.transform)

    {
    if(cell.ChildCount > 0 ) {
    // do stuff
    }

    }






    Gameobject'lerin transformları alt nesneleri için dizi görevi görüyor fakat index olarak ulaşamıyorsun , tam emin olmamakla beraber sanırım hashset olarak oluşturulduğundan olabilir.Bu yüzden foreach ile ulaşman lazım.



    < Bu mesaj bu kişi tarafından değiştirildi abasgun -- 10 Şubat 2018; 14:34:15 >
  • abasgun kullanıcısına yanıt
    Cell panelin içindekileri değil cell objelerin içini kontrol edecek. Cell panelin içinde cell objeleri var ve cevap kaç harfliyse o kadar pool ediyor. Oyunda da Drag and drop var. Oyun başlarken cell objelerin içi boş, harf objelerini cell'e drop yaparak içini dolduruyorsun. Aslında şöyle bir algoritma düşündüm. Cell sayısını int değişkenine yazdırıp int sayısı ile de string sayısını karşılaştırıcam. Tabi string değişkenlik gösteriyor yani itemleri cell e atınca stringe harf yazdırıyor. Ztn cell sayısı ile string sayısı her şekilde eşit olacağından if koşulu ile check edip startcaroutine yapiyim diyorum. Nasıl?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: WOLKY DJ

    Cell panelin içindekileri değil cell objelerin içini kontrol edecek. Cell panelin içinde cell objeleri var ve cevap kaç harfliyse o kadar pool ediyor. Oyunda da Drag and drop var. Oyun başlarken cell objelerin içi boş, harf objelerini cell'e drop yaparak içini dolduruyorsun. Aslında şöyle bir algoritma düşündüm. Cell sayısını int değişkenine yazdırıp int sayısı ile de string sayısını karşılaştırıcam. Tabi string değişkenlik gösteriyor yani itemleri cell e atınca stringe harf yazdırıyor. Ztn cell sayısı ile string sayısı her şekilde eşit olacağından if koşulu ile check edip startcaroutine yapiyim diyorum. Nasıl?



    Oyunun tam sistemini bilmediğim için , dediğiniz olur mu olmaz mı tam bilemiyorum, fakat benim yazdığım kodda zaten CellPanel içinde ki cell objelerinin childları var mı yok mu onu kontrol ediyor ilk mesajda yapmak istediğiniz gibi.




  • abasgun kullanıcısına yanıt
    Haklısın. Şimdi düşündüm de doğru aslında çalışabilir eve geçtiğimde denerim

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • abasgun kullanıcısına yanıt
    daha ilk harfi koyduğumda kontrol ediyor ama update yerine baka nereye koyabilirim ki? hepsini birden kontrol etsin. bu kod daha ilkinde kontrol ediyor



    < Bu mesaj bu kişi tarafından değiştirildi Guest-97901DBF5 -- 11 Şubat 2018; 0:54:49 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.