Donatılabilir Wand nasıl çalışır?
Wand'a Genel Bakış
Önemli
Equippables'ı kullanmaya yeniyseniz, bu makaleyi okumadan önce Nesneleri Donatılabilir öğelerle gerçekçi bir şekilde tutma başlıklı makaleyi okumanızı öneririz.
Wand, GitHub'dan Mesh örneklerimizi indirdiğinizde aldığınız Toybox paketinde bulunan Donatılabilir öğelerden biridir. Asayı elinize aldığınızda, neredeyse göğüs hizanızda önünüzde tutarsınız ve Wand ucunda parıltılı bir buhar parçacık etkisi gösterir.
Wand'ı etkinleştirmek için sol fare düğmesine (PC) veya denetleyici tetikleyici düğmesine (Görev) tıklayın. Kolun öne doğru itilir ve Asanın ucu başka bir parçacık etkisiyle oluşturulan havai fişekleri yayar.
Wand'ın etkinleştirme türü tek olarak ayarlanır. Başka bir deyişle, davranışlarında ilerler çalıştırmaz Wand devre dışıdır ve kolunuz ilk konumuna döner. Davranışları yinelemek için yeniden tıklayın.
Wand betik grafı
Şimdi Wand'ın nasıl çalıştığına göz atalım ve buna bağlı olan betik grafiğini inceleyelim.
Oyuncak Kutusu örneğini açın ve Oyuncak Kutusu sahnesinde olduğunuzdan emin olun.
Hiyerarşi'de GameObject Wand_Prefab seçin.
Denetçide Betik Makinesi bileşenine gidin ve MagicWand adlı bir betik grafı varlığı içerdiğini unutmayın. Grafiği Düzenle düğmesine tıklayın.
Wand'ın ne zaman alınıp alına olmadığını algılama
Wand'a ekli görsel betikte, sihirli parlama başlatmak için Analizimizi TutulduYsa Denetle adlı düğüm grubunda başlatıyoruz.
Wand'ın alınıp alınmadığını belirleyen düğüm Mesh Etkileşime Açılabilir Gövde: Benimdir. Bu bir Boole değeridir ve False değeriyle başlar.
Bir avatar Wand'ı aldığında, durumu değişir. isMine değeri "true" olarak değişir ve bu değer bir if düğümüne geçirilir. Bu, bir "pick-up sound" öğesinin tetiklemesine neden olur...
... ve ayrıca StartGlowVFX nesne değişkeninin değerini "true" olarak değiştirir.
isMine ve Durum Değişti düğümlerinin üzerindeki metinde "Bu istemci için yerel" ifadesinin bulunduğunu unutmayın.
Bu düğümler ve tetiklenen ses yerel olarak gerçekleşir. Ancak etkinlikteki diğer katılımcıların Wand ile neler olduğunu deneyimlemesini istiyoruz. Bu, "Tüm istemciler tarafından paylaşılan" metnini görüntüleyen Nesne Değişkenini Ayarla düğümü eklenerek elde edilir.
İpucu: isMine değişkeni Mesh Interactable Body betiğinde bulunur.
Etkinleştirilmemiş durum parçacık etkisini açma
Akışı Networking startMagic adlı düğüm grubundan alırız. Bu düğüm grubunun amacı, Wand'ın ucunda görünen ilk parçacık etkisini açmak ve kapatmaktır. Bu etkiyi "parıltılı buhar" olarak adlandıracağız.
Durum değişikliği, startFLowVFX'in "true" değerinin bir if düğümüne geçirilmesine neden olur..
... ve bu, PersistentVFX nesne değişkeninin değerinin de doğru olmasını sağlar ve bu da vfx_wand-ethereal_persistent_02 parçacık sistemi ("sparkly vapor") etkisini tetikler.
Wand'ı etkinleştirme
Katılımcının sol fare düğmesine (BILGISAYAR) veya denetleyici tetikleyici düğmesine (Görev) tıklaıldığını varsayalım. Buna "Donatılabilir'i etkinleştirme" denir. Avatarın kol konumunun değişmesine neden olur ve Ağ İletişimi adlı düğüm grubunda . ..
... Tıklama, Mesh Etkileşime Girilebilir Gövde: Etkin düğümü tarafından algılanır. Bu düğüm, varsayılan değeri false olan bir Boole değeridir. Tıklama "true" olarak etkinleştirilir; Durum Değişti düğümü " true" değerini If düğümüne geçirir. Bu, Değişken Ayarla düğümünün isPressed Boolean değerini öncekinin tersine ayarlamasına neden olur (dolayısıyla artık "true" olur).
İpucu: isActivated değişkeni Mesh Interactable Body betiğinde bulunur.
Etkinleştirilmiş durum parçacık etkisini açma
Tıklamayla Yazım ataması adlı düğüm grubundan akışı alırız.
Bu düğüm grubu, katılımcı düğmeye tıkladığında ve Wand'ı etkinleştirdiğinde oluşan Wand'ın sonundaki havai fişek parçacık efektini tetikler. Wand etkinleştirilmemiş durumuna döndükten sonra, bu düğüm grubu ilk parçacık etkisini ("sparkly vapor") yeniden açar.
Grafikte isPressed* öğesinin "true" değeri bir if düğümünün Değişken Ayarla: Nesne düğümünü tetiklesine neden olur. Bu düğüm startGlowVFX değişkenini "false" olarak ayarlar.
Bu, Ağ başlatmaGic düğüm grubundaki düğümleri yeniden tetikler. Bu kez startGlowVFX'in "false" değeri PersistentVFX parçacık etkisinin kapanmasına neden olur.
Tıklama düğümü grubundaki Yazım Ataması'na geri dönün. Kısa bir bekleme süresinden sonra bir ses çalınıyor ve wand'ın ucunda farklı bir parçacık efekti tetikleniyor: vfx_wand_blast_trail_spheres_01 ("havai fişekler"), ShootTrailVFX nesne değişkeninin değeridir.
Aktif olmayan parçacık efektini yeniden açın
Bir diğer kısa bekleme süresinden sonra startGlowVFX Boole değeri yeniden "true" olarak değiştirilir ve bu da vfx_wand_ethereal_persistent_02 parçacık sistemi ("sparkly vapor") etkisini Networking startMagic grubunda yeniden açar.
Bu noktada avatarın kolu Asa etkinleştirilmeden önceki konumuna döner ve parıltılı buhar tekrar görülebilir.
Değnek'i serbest bırakma
Wand'ın etkinleştirme türü "iki durumlu" ise, katılımcı yeniden tıkladığında ikinci, farklı bir "durum" veya davranış kümesi tetikler. Ancak, Wand'ın etkinleştirme türü "tek" olur ve bu, katılımcı her tıklayışında aynı "durum" veya davranış kümesinin tekrarlandığı anlamına gelir.
Wand'ı serbest bırakmak için katılımcı Boşluk tuşuna basar; Bu, Wand'ın yere düşmesine neden olur. Değnek tutulmadığında, asanın ucunda parıltılı buhar parçacık etkisinin çalışmasını istemeyiz. Meşgul değilse, Wand düğüm grubunu kapat grubundaki düğümler bu parçacık etkisini kapatır.
Wand tutulurken Mesh Etkileşime Geçebilen Gövde: Get Equipped At* değerinin değeri "DefaultHand" olur. Equip Location düğümünün (Boole) değeri "None" şeklindedir. Bu iki değer Eşit düğümde karşılaştırılır (aynı zamanda Boole değeridir); aynı olmadığından Eşit'in çıkışı "false" olur ve if düğümü tetiklenmez.
Wand bırakıldığında, Get Equipped At değeri "None" olarak değişir. Bu, Equal ve If düğümlerinin "true" çıkışını vermesine neden olur. Bu, startGlowVFX nesne değişkeninin değerini "false" olarak dönüştüren Set Variable: Object düğümünü tetikler.
Bu işlem bir kez daha Networking startMagic düğüm grubundaki düğümleri tetikler ve PersistantVFX nesne değişkeninin değeri olan "sparkly vapor" parçacık etkisini (vfx_wand_ethereal_persistent_02) kapatır.
Betikle denemeler için öneriler
- Mevcut Donatılabilir öğelerden biri alındığında ve tutulduğunda tetiklenebilen farklı efektler oluşturun.
- Mevcut efektlerin bazılarını kullanabilecek yeni Donatılabilir öğeler oluşturun. Örneğin, bazı havai fişek türleri şu anda Wand tarafından kullanılan "parıltı" efektlerini kullanabilir.
- Yeni Bir Donatılabilir için, Donatılabilir tutulduğunda ve sol fare düğmesine (PC) veya denetleyici düğmesine (Görev) basıldığında tetiklenebilen farklı efektler ve davranışlar oluşturun. Örneğin, asa yerine, düğmeye bastığınızda bir yem atan bir oltanız olabilir.
- Bir nesnenin teslim alındığında doğrudan etkinleştirilmiş durumuna taşınması (örneğin, Detaylandırma) ile etkin olmayan bir nesnenin başlatılması ve katılımcı tıklatıldıktan sonra etkinleştirilmiş durumuna geçmesi (örneğin, Tablet) arasındaki farkı düşünün. Her iki yaklaşımdan da yararlanan nesneler yapın.