‫Merhaba.
‫Hoş geldiniz.
‫Bu derste, yakalayıcıyı çok daha güvenilir hale getireceğiz.
‫Ayrıca yakalanan bir bileşeni bırakmayı mümkün kılacağız, böylece onu etrafa fırlatabilir ve genellikle biraz
‫daha kullanışlı olmasını sağlayabiliriz.
‫Şimdi bunun nasıl yapıldığını görelim.
‫Şimdi, bu gargoyle'ı genellikle algılayamamamızın nedeni, performans uğruna
‫fizik simülasyonu yapan bileşenlerin belirli bir süre hareketsiz kaldıklarında uykuya geçmeleridir.
‫Ve gördüğümüz şey de bu.
‫Bu gargoyles fizik simülasyonu uykuya dalıyor ve fizik kolumuzla ona bağlandığımızda
‫uyandırılmıyor.
‫Bu yüzden öğrenmemiz gereken şey, bir küre izi ile vurduğumuzda onu uyandırmaktır.
‫Şimdi gidip gördüğümüz ilkel bileşen belgelerine bir göz atalım.
‫İlkel bileşen, isabet sonucumuz tarafından döndürülen şeydir, ancak aslında ilkel bir bileşen
‫olan şeydir.
‫Belgelerde, ilkel bir bileşenin bir tür geometri içeren veya üreten ve çarpışma
‫verisi olarak işlenen veya kullanılan bir sahne bileşeni olduğu yazıyor.
‫Yani genel olarak konuşursak, ilkel bileşenler fizik simülasyonu yapabilen bileşenlerdir.
‫Dolayısıyla burada bazı fizik simülasyon yöntemleri bulmayı bekleyebiliriz.
‫Arayacağım şey ise içinde wake anahtar sözcüğü geçen bir fonksiyon.
‫Tüm katı cisimleri uyandır diyen bir fonksiyon bulana kadar birkaç fonksiyona bakacağız.
‫Katı cisimler esasen fiziği simüle eden nesneler için kullanılan bir fizik terimidir.
‫Yani bir boşluk olduğunu görebilirsiniz.
‫Dönüş türü herhangi bir argüman almaz.
‫Dolayısıyla, ona bağlanmaya çalıştığımızda bunu çağırabilmeliyiz.
‫Dolayısıyla, if deyimimizin içindeki grab a CP'ye gidersek, bu bileşene ulaştık, onu yakalamak üzereyiz.
‫Yapmamız gereken ilk şey, bu ilkel bileşeni saklamak için bir değişken oluşturmak olabilir.
‫Böylece, isabet sonucu nokta get bileşenine eşit olan isabet bileşeni adlı bir ilkel bileşen
‫işaretçimiz olacak.
‫Ve sonra bu bileşen işaretçisini kullanarak, tüm katı cisimleri okla uyandırabilir ve ardından parantezleri ve noktalı virgülü
‫sonuna koyabiliriz.
‫Yani bu bileşene bir tekme atmalı, onu uyandırmalı ve böylece fizik tutamacına yanıt vermesini sağlamalıdır.
‫Şimdi isabetli sonuçları yaptığımız yeri değiştirelim.
‫Bileşen konumunu almak için fizik kolu çağrımızda bileşenleri almayın çünkü artık bunun için bir değişkenimiz
‫var ve bu bittiğinde yeniden derleyelim.
‫Devam edip oynat düğmesine basalım ve çirkin yaratığın şimdilik yerde biraz oturmasına ve uyumasına izin verelim
‫ve sonra onu kaldırmayı deneyelim.
‫Ve fark edeceksiniz ki, onu almakta, yerde bırakmakta, her ne olursa olsun hiçbir sorunumuz yok.
‫İyi olacak ve bu fizik katı cisimlerini uyandıracak ve onları simüle etmeye başlayacak, böylece kaldırılabilecek
‫ve tutulabilecek.
‫Şimdi, şu anda fizik kolunu serbest bırakamadığımızı fark etmiş olabilirsiniz,
‫bu yüzden serbest bırakma işlevinde bunu yapmak sizin göreviniz olacak.
‫Yani bu fizik tutamacında serbest bırakma bileşenini çağıracaksınız.
‫Bu, fizik tutamacı işaretçisinde mevcut olan bir işlevdir.
‫Önce bir get grabbed bileşenimiz olup olmadığını kontrol edeceksiniz.
‫Bu nedenle, grab bileşenine bir işaretçi döndüren grab bileşenini alırsanız, fizik tutamacı o anda
‫herhangi bir şey tutmuyorsa bu noktalar null olacaktır.
‫Böylece bunu, elimizde bir şey olup olmadığını kontrol etmek için kullanabilir ve yalnızca şu anda bir şey alıyorsak serbest bırakabilirsiniz.
‫Ve bonus olarak, hedefi tekrar belirleyip belirleyemeyeceğimizi görmek için bir deneme yapabilirsiniz.
‫Sadece bir şey kapıyorsak, ama videoyu izleyin ve bir deneyin.
‫Tekrar hoş geldiniz.
‫Hadi gidip bir fincan alalım.
‫Serbest bırakma işlevine girip serbest bırakma günlüğünü kaldıracağım.
‫Ve buraya bir if ifadesi koyacağız ve if diyeceğiz ve şimdi fizik tutamaçlarımızı
‫tutmamız gerekiyor.
‫Bu yüzden, her şeyden önce, fizik tanıtıcısı olarak adlandıracağımız bir fizik tanıtıcısı bileşen işaretçisi
‫yapacağız ve bunu fizik tanıtıcısı al'a eşit olarak ayarlayacağız.
‫O zaman fizik tanıtıcısı null işaretçisine eşitse, devam etmek ve geri dönmek istiyoruz çünkü hiçbir şey yapamayacağız,
‫hiçbir şeyi serbest bırakamayacağız.
‫Eğer bir fizik tutamacımız yoksa, o zaman fizik tutamacımızla şu anda herhangi bir şeye tutunup tutunmadığımızı kontrol
‫etmek isteriz.
‫Diyelim ki, physics handle arrow get grabbed bileşeninin parantezleri null işaretçisine eşit değilse, o zaman bu if deyiminin gövdesi
‫içinde şu anda bir şey yakaladığımız anlamına gelir, o zaman adından
‫da anlaşılacağı gibi gitmesine izin verecek olan bir physics handle arrow release bileşeni yapacağız.
‫Buradaki kodda yapmadığım ama muhtemelen sizinkine eklemeye değer bir şey de, bileşeni serbest
‫bırakmadan önce, devam edip get grabbed components'i çağırmak ve ardından bileşeni yakalamadan önce yaptığımız
‫gibi zayıf tüm katı gövdeleri eklemektir.
‫Çünkü bir bileşeni büyütür ve bir süre hareket ettirmezsek, o da uykuya dalabilir.
‫Bu yüzden serbest bırakılması hiçbir işe yaramayacaktır.
‫Dolayısıyla, bu köşe durumunu yakalayacağından ve şu anda hiçbir şey tutmayan bir fizik tutamacımız varsa
‫hedef konumu tik olarak ayarlamamak istediğimizden bu eklemeye değer.
‫Yani burada tik bileşenlerimizde, tamamen aynı olacak bir if deyimi koyacağız.
‫Fizik tutamacı okunun yakalanan bileşenin null işaretçisine eşit olmadığını söyleyecektir.
‫Ardından if deyiminin gövdesine, hedef konumun hesaplanmasını ve hedef konumun ayarlanmasını
‫da bu fizik tutamacına koyacağız.
‫Yeniden derleyelim ve bunu deneyelim.
‫Devam edelim ve oynat tuşuna basalım.
‫Ve gargoyle'u yakalamaya çalış.
‫Sonra fareyi bıraktığımda tekrar yere düşüyor.
‫Yani uyanık ya da uykuda olmasından etkilenmiyor gibi görünüyor.
‫Esasen her seferinde onu kaldırıyor olsak da uyandırıyor gibi görünüyoruz.
‫Bu da tam istediğim gibi çalışıyor gibi görünüyor.
‫Sıkışmıyor.
‫Doğru gibi hissediyorum.
‫Biraz garip olan tek şey, içine doğru hareket ettiğimde, oyuncuyla gerçekten çarpıştığı için bu garip
‫titremeyi yaptığını görebilirsiniz.
‫Şimdi ayrıntılar bölmesinde çirkin adamımıza giderek, tüm kategoriyi seçerek, çarpışmaya
‫kaydırarak ve özel çarpışma ön ayarımıza ve nesne yanıtlarında aşağıya bakarak bunu biraz
‫düzeltebiliriz.
‫Bu konuda daha sonra biraz daha bilgi vereceğiz.
‫Bir piyon nesnesi yanıtı var.
‫Bu temel olarak şunu söyler: Piyonla çarpışmalı mıyım yoksa çarpışmamalı mıyım?
‫Piyona cevabım ne olmalı?
‫Piyonla çakışacak şekilde ayarlayacağım.
‫Bu da demek oluyor ki, eğer benimle çarpışırsa, aslında onu görmezden geliyor.
‫Ve sonra yapmamız gereken bir şey daha var, çünkü bu aslında iki statik kafesten oluşuyor,
‫kendi çarpışma ayarları var.
‫Toprak tümseğe gideceğim.
‫Gargoyle'un altındaki şey.
‫Ve burada aslında sadece işleri basitleştireceğim.
‫Toprak tümsek kısmını yapacağım, çarpışma yok.
‫Bu yüzden çarpışma yok ön ayarına geçeceğim.
‫Sonra devam edip oynat tuşuna basacağım ve yerden çirkin yaratığı alacağım.
‫Ve şimdi onunla koştuğumda, oyuncu çarpışma ağıyla çarpışmaya çalışmadığı
‫için o garip aksaklıkların hiçbirinin olmadığını görebilirsiniz.
‫Harika bir şey.
‫Bu derste kapma işlemimizi nasıl daha güvenilir hale getirebileceğimizi ve kapma bileşenini nasıl serbest bırakabileceğimizi
‫öğrendik.
‫Harika bir şey.
‫Bir sonraki derste görüşürüz.