Selamlar hocam elinize sağlık, Coroutinelarda şu ana kadar sorun yaşamadım fakat uzun zamandır unitaski de takipteyim, ve webden vs. veri çekme durumlarında unitask çok daha hızlı olacaktır. Şuan trendlerde yaygın bir coroutine düşmanlığı var ve alternatifler aranıyor unitask ve r3 gibi. Proje bazlı UniTask kullanmak mantıklı geliyor ama direkt olarak codebase'i third-party bi package üzerine kurmak olası, bug & unity update ile gelen sıkıntılar gibi sorunlara debuglamayı zorlaştıracağını düşünüyorum. Siz ne düşünüyorsunuz bu konuda hocam? Sizce coroutinelar tamamen bırakılıp, alternatiflere mi yönelmeli. Özellikle siz MMORPG projede çalışmış biri olarak sizin düşüncelerinizi merak ediyorum bu konuda. Bir de ek olarak WaitUntil() kısmında anlatmak istediğinizi anlayamadım, coroutinein WaitUntil() inden farkı nedir? Global değişkenlerden vs. bahsetmişsiniz, main loopta ilerlemesi vb. ama Coroutinedaki WaitUntil de tam olarak örnekteki gibi çalışmıyor mu? Farkı olarak söyleyebileceğim şey WaitUntili newlediğimiz için heapte allocation oluşturuyoruz ve garbagea dahil oluyor. Unitask tarafında bu iş stack ksımında halloluyor zannımca.
MMORPG'lerde thread bile yavaş kalıyor fiber denen alternatifler kullanılıyor. O boydaki projelerde tüm yükü tek bir işlemci çekirdeğine yıkarak işin içinden çıkmanızın imkanı yok, Coroutine o boyda projeler için kafanıza sıkmakla eşdeğer. Katıldığım projelerden Kryptomon World of Kogea'da Quartz diye bir sistem kullanılıyordu, Illuvium'da ise Albion'daki gibi fiber kullanılıyor
Tolga hocam selamlar, bazı videolarınızı tekrar tekrar izliyorum öğrenmek için de aklıma bir soru takıldı kodlar ile boğuşurken sormak istedim. Hocam diyelim asenkron olarak bir tuşa basıldığında müzik çalmasını istiyorum, mesela 5 saniye sonra, için de while falan da var bazı işlemler için. Ben aynı tuşa birden fazla basıyorsam bu async fonksiyon o kadar fazla çağırılıyor ilk çağrılan bitmeden, nasıl bunu önleyebilirim ? Asenkron fonksiyonun başına bool değişken ile lockluyorum ama mimarimi bozuyor, benzer fonksiyonlar için benzer boolean lock değişkenleri koyunca çorbaya dönüyor kodum. Daha iyi bir yöntemi var mıdır ? Saygılar.
Lock en mantıklısı kardeşim, fakat yaptığın işe göre başka şeyler de olabilir. Örneğin bir AudioSource üzerinde nir şey çaldıracaksan IsPlaying ile çalıp çalmadığına baktırıp çalıyorsa yaptırmayabilirsin. Bir class içinde local bir flag değişkeni yapmak mimarileri çökertmez bence kardeşim
Hocam videolarınızdaki ses kalitesi mükemmel olmuş dikkate aldığınız için teşekkür ederiz.
Ağzına sağlık. Önceden duymustum ve kullanmıştım ama sen anlatınca Ufak bir proje yapiyorum orada da aslinda kullanabilirim onu fark ettim :)
Hocam elinize sağlık güzel eğitimleriniz var Allah sizden razı olsun
Değerli bilgiler için teşekkürler. Unity kodlama sistemindeki püf noktaları öğretiyorsunuz. Herkese faydalı olduğunu düşünüyorum.
Selamlar hocam elinize sağlık,
Coroutinelarda şu ana kadar sorun yaşamadım fakat uzun zamandır unitaski de takipteyim, ve webden vs. veri çekme durumlarında unitask çok daha hızlı olacaktır. Şuan trendlerde yaygın bir coroutine düşmanlığı var ve alternatifler aranıyor unitask ve r3 gibi. Proje bazlı UniTask kullanmak mantıklı geliyor ama direkt olarak codebase'i third-party bi package üzerine kurmak olası, bug & unity update ile gelen sıkıntılar gibi sorunlara debuglamayı zorlaştıracağını düşünüyorum. Siz ne düşünüyorsunuz bu konuda hocam? Sizce coroutinelar tamamen bırakılıp, alternatiflere mi yönelmeli. Özellikle siz MMORPG projede çalışmış biri olarak sizin düşüncelerinizi merak ediyorum bu konuda. Bir de ek olarak WaitUntil() kısmında anlatmak istediğinizi anlayamadım, coroutinein WaitUntil() inden farkı nedir? Global değişkenlerden vs. bahsetmişsiniz, main loopta ilerlemesi vb. ama Coroutinedaki WaitUntil de tam olarak örnekteki gibi çalışmıyor mu? Farkı olarak söyleyebileceğim şey WaitUntili newlediğimiz için heapte allocation oluşturuyoruz ve garbagea dahil oluyor. Unitask tarafında bu iş stack ksımında halloluyor zannımca.
MMORPG'lerde thread bile yavaş kalıyor fiber denen alternatifler kullanılıyor. O boydaki projelerde tüm yükü tek bir işlemci çekirdeğine yıkarak işin içinden çıkmanızın imkanı yok, Coroutine o boyda projeler için kafanıza sıkmakla eşdeğer. Katıldığım projelerden Kryptomon World of Kogea'da Quartz diye bir sistem kullanılıyordu, Illuvium'da ise Albion'daki gibi fiber kullanılıyor
Hocam süper olmuş teşekkür ederiz 😀
Eline sağlık. Ben de sayende öğrendim.
Tolga hocam selamlar, bazı videolarınızı tekrar tekrar izliyorum öğrenmek için de aklıma bir soru takıldı kodlar ile boğuşurken sormak istedim.
Hocam diyelim asenkron olarak bir tuşa basıldığında müzik çalmasını istiyorum, mesela 5 saniye sonra, için de while falan da var bazı işlemler için. Ben aynı tuşa birden fazla basıyorsam bu async fonksiyon o kadar fazla çağırılıyor ilk çağrılan bitmeden, nasıl bunu önleyebilirim ? Asenkron fonksiyonun başına bool değişken ile lockluyorum ama mimarimi bozuyor, benzer fonksiyonlar için benzer boolean lock değişkenleri koyunca çorbaya dönüyor kodum. Daha iyi bir yöntemi var mıdır ? Saygılar.
Lock en mantıklısı kardeşim, fakat yaptığın işe göre başka şeyler de olabilir. Örneğin bir AudioSource üzerinde nir şey çaldıracaksan IsPlaying ile çalıp çalmadığına baktırıp çalıyorsa yaptırmayabilirsin. Bir class içinde local bir flag değişkeni yapmak mimarileri çökertmez bence kardeşim
@@tolgakaranlik Anladım Tolga hocam çok teşekkür ederim, en mantıklısı core bir api yazmak bunlar için, locklari ve fonksiyonları oraya atmak
Herkese hayallerini gercek yapma cok kazanma cok mutluluk dilerim
Hocam WebGl de Unitask'lar da hata çıkma durumu varmı? async'larda oldugu gibi
Bu konuyu bir araştırayım
ben biraz baktım, WebGl de sorun yok yazan bi kaç yer gördüm ama emin olamadım.@@tolgakaranlik
hoca bir süre sonra kendi diline geçiyor nirvanaya erişiyor. hem türkçe hem ingilizce gibi ama ikisi de değil
gerçekten kralmış 5x okunabilirlik kazanacak kodlarım