Hey merhaba ziyaretçi bize destek olmak ister misin ? Hemen Kayıt Ol Seni hiç sıkmadan kayıt edeceğiz endişelenmek bize destek olduğun için teşekkürler.



  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sonradan neden sonsuz döngüye giriyor?
#1
Question 
Selamun aleyküm. Öncelikle kolay gelsin herkese, oyunum uzayda geçiyor ve uzay gemisi satın alabileceğiniz bir sistem yaptım, uzay gemisinin prefabını ayarladım, mağazadan butona bastığınızda geçerli geminin tüm childları while döngüsüyle destroy ediliyor, sonrasında prefab'tan childlar tek tek çekilip oluşturuluyor. İlk gemiyi alırken sorun yok ancak eski gemiye geçmek için butona bastığımda while döngüsü sonsuz döngüye giriyor ve unity sonsuz döngüyle karşılaştığında ne olduğunu biliyorsunuz, donuyor gibi bir şey ama donmuyor Big Grin.
Bu arada ilk geminin 9 child'ı var, ikinci geminin 10 child'ı var, child sayısıyla pek alakası olduğunu düşünmüyorum ama yinede yazayım dedim.

   

Koddaki sorun while döngüsünde çünkü eski gemiye dönerken while döngüsünü sildiğimde unity donmuyor.
  Cevapla
#2
O kod'da sonsuz döngüye girmesini sağlayacak bir durum göremedim ben sorunun farklı bir yerde olabilir bence şu olabilir hatta child sayısı değiştiğinden silmeye çalıştığında hata alıyor olabilirsin.
Bir gün her şey kodlanacak ... Idea

resim
  Cevapla
#3
Sorun farklı bir yerdeymiş, bir yerde destroy yazmışım ki bu kodlarda nedense destroy çalışmıyor, destroyimmediate kullanmam gerekiyor, o destroy yazdığım yeri düzelttim ve sorunum çözüldü Smile
  Cevapla
#4
(20-07-2017, Saat: 19:18)No_99 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.!Sorun farklı bir yerdeymiş, bir yerde destroy yazmışım ki bu kodlarda nedense destroy çalışmıyor, destroyimmediate kullanmam gerekiyor, o destroy yazdığım yeri düzelttim ve sorunum çözüldü Smile

Destroy komutu geçen bende denedim çalışmadı sebebini anlamadım bende ya destroyimmediate farkı neymiş ?
Bir gün her şey kodlanacak ... Idea

resim
  Cevapla
#5
unitygeek.com 'dan anladığım kadarıyla,
Destroy, nesneyi frame tamamlandığında yok etmekte ve ilgili değerleri null olarak atmakta.
DestroyImmidiate, adından da anlaşılacağı gibi, bu işlemi daha hızlı yapmakta, frame'in tamamlanmasını beklememekte.

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.! bunu konsola çıktılar vererek başarılı şekilde test etmişler.

Yine Unity Scripting Api altındaki resmi 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.!, fark aynı şekilde belirtilmiş.
Her şeyden önce kesinlikle DestroyImmidiate yerine Destroy kullanılması ağır şekilde tavsiye edilmiş.
Destroy metodu her zaman frame'in sonuna kadar ertelenmekte, ilgili frame de ilgili gameobject ya da bu gameobject'in özellikleri ile ilgili herhangi bir işlem yapılması durumunda bir sorun yaşanmaması için.
DestroyImmidiate ise sıradan yordam sırasına göre daha öncelikli olarak çalışmakta ve frame'in sonuna kadar beklenmemekte. Bunun kullanılması tavsiye edilmiyor çünkü aynı frame içerisinde ilgili gameobject'in özelliklerine müdahale söz konusu olursa muhtemelen hata verecektir diye anlıyorum.
Bugün, hayal ettiğin gelecek için bir adım attın mı?

  Cevapla
#6
Teşekkürler Smile
  Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Unity - 2 Boyutlu Platformda Kutular İç İçe Giriyor Scofailed 0 110 12-03-2019, Saat: 17:34
Son Yorum: Scofailed
Photo SONSUZ BİR ŞEKİLDE EKLİCEK bayrakdarr 2 725 03-02-2018, Saat: 18:32
Son Yorum: bayrakdarr

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi