clgnturkler6

Yeni üye
24 Ara 2020
11
0
0
(6) Ankara
Bir Proje Üzerinde Çalışıyorum ve Silah Kısmını Halletmeye çalışıyorum
Karakter Yerdeki Silaha Yaklaştığında Silah Eline Geçicek
Silahın Alanına Girdiğinde Yok Olmasını Hallettim, Şimdi İse Silah Yok olduğunda Eline Gelmesi İçin
Gereken Node'ları Yerleştirmeye Çalışıyorum Ancak Cast To Type38 Node'unun Object Kısmına Ne Koymam
Gerektiğini Bilmiyorum Yardım Ederseniz Sevinirim (Type38 : Silah BP'si)

Resimde İşte Burada:


https://www.hizliresim.com/6og4y3v


https://i.hizliresim.com/6og4y3v.JPG
 
ben ne yaptığını tam olarak anlamadım açıkçası ama bir silahı veya objeyi eline almak istiyorsan ya bir collision oluşturur Begin Overlap ile referansını alırsın yada trace atar hit actor üzerinden referansını alırsın, bunu da object kısmına bağlarsın. mantığı budur.
 
Selam clgnturkler6  ben sana yardımcı olabilirim.
Yenisin galiba. resimdekini internet ten bulduğun örnek ise pek iyi değil.
sequence çalışma mantığını söyliyim.

Then0 = bağlantı kablonun son ucuna geldiğinde.Then 1 e geçer
Then1  =cast koymuşsun.yani sadece cast a enerji verir. Then 0 a enerji gitmez set edemez o artık.(Beyaz kablo enerjidir.)
Then 2 =Bu kanal doğru çalışır.sıkıntı yok.

Cast konusunda şunu dicem.Mantığın ilk objeyi çağırmak olsun.sonra sağ tık cast dicen.

Resim Karakterin graph'ı herhalde.Type 38 senin Silah actorun dimi?.Onun bi kere spawn olması lazim.Onları nasıl yaptın bilmiyorum.

Spawn actor from class ile spawn olunca return value (Mavi) obje oluyor.Objeyi game Instance ye Array oluştur set et.Daha sonra onu game ınstance den çağırip cast yap.


GameInstance harita değişse bile değişkenlerin Hafızada kaldığı yerdir. GameInstance adın her projende aynı olsun. Actor transferi yapman için..Unreal'de bir tane gameınstance aktif olabiliyor.(Adını + koy mesela) 

Her şey karakter içinde olmaz.Aktorler kullanman lazim.Onlar açık olcak spawn olup arkaplanda işlemler yapacak.Actor controller yapman lazım.fazla actor çalışmasını durdurmak için.

Sonra widget controller yapman lazım.Her seye add viewport - remove parent deyince karışır heryer.

Oyun yapmak zok zor birşey her şeyin bir yanlışı bir doğrusu var.Ben her öğrendiğimde yeniden yaptım projeyi.4-,5 kere
.Bir şey tasarlarken en doğru yol imkansız gibi.illa bi yerde yanlış yoldan gidiliyor.
 
Merhaba, 
"eksik kısım" dediğin için konuyu "casting" ile sınırlı tutacağım. Eğer doğru anladıysam paylaştığın "logic" kontrol ettiğin karaterin silahın yanına gittiğinde tetiklenmesini istediğin bir olay. Ben ingilizce terimleri ile anlatayım ki programda uğraşırken aşinalık olsun. Umarım yardımcı olabilirim. ,

Öncelikle kullandığın birinci node doğru değil. Yani event tick bir update aracıdır. her frame için bir olayı tetikler. trigger event yapar yani. 
Ancak sen her frame de olsun istemiyosun, silahın yanına gidilince olsun istiyorsun hadi önce bunu çözelim. 
İki yol var  istersen player  charactere istersen yerdeki silaha bir "collision" eklemek gerekiyor.  Senin durumunda sanıyorum ki birçok silah ve başka itemler de olacak, eğer bunlar tek bir parenttın childları değilse (bu cümle karışık geldi farkındayım, yani bir item adında bir actor yarattın ve diğer tüm itemleri silahları ters tıklayarak create chil etmediysen demek istiyorum) ; 
player karaktere bir collision detection eklenebilir. Basit olması açısından box collision ekleyebilirsin "edit blueprint" kısmından solda box collision ekle. Bu component ilerde önüne senin belirlediğin büyüklükteki alan (box ın alanı ) senin karakterin önündeki her cismi tanımanı sağlayacak. Bu box ı şöyle düşün sanki gözlerin kapalı ama senin önünde bir hayali bir kutu var ve sen yürürken henüz ona çarpmadan cismin ne olduğuu sana söylüyor. Bu olaya "overlap" denir. collision alanına bir cismin girmesine basitce overlap actor diyelim. 
Şimdi projenin ihtiyacı olduğu şekilde box ın büyüklüğünü ayala ve lütfen karakterin kendi capsule collisiona değmiyor olmasına dikkat edelim. 
Sonra bu box seçiliyken sağ altta "on component begin overlap" göreceksin, yeşil birçok satır var ama sen bunun artı kısmına tıkla. 
sonra direkt karakterin eventgraph ına bu node eklenecek. Bu işte senin başlaman gereken nokta. Şimdi "than" mantığına gerek yok ardarda yazalım. orada bir other actor var yani bu alana giren actor. Senin durumunda bu silah.  Ozaman other actorden bir hat çıkartıp "cast to type38" dersen göreceksin eksik kısım tamamlanmış olacak. Exacution yani temel bağı birbirine bağladığında şöyle bir mantık sağlamış oldun, bu alana eğer bir type38 actorü girerse (yani biz yürürken type38 adındaki silaha denk gelirsek). yani gözümüz kalpı bir silaha denk geldik bu type 38 mi? göreceksin cast ve cast fail diye seçenekler var. bizim durumumuzda olumsuz değil cast ın başarılı olduğu senaryo ile gidelim. bunu "silah alınacak" variable da saklayıp sonra da componenti meshe ekleyebilirsin. Bunun için sıralı bir mantık yaratmana da gerek yok peşpeşe yazarsan da aynı işi görür. 
not: sormamışsın ama eğer bir silahı bir meshe eklemek istiyorsan iskelet soketi denen teknikle yaparsan ilerde daha sorunsuz bir animasyon yakalayabilirsin.  mesela skeleton mesh de right hand bone a bir "weaponsocket" eklenebilir ve ilerde silahları alırken direkt bu sokete bağla diyebilirsin. böylece hepsi için ayrı ayrı bir transform yapmana gerek kalmaz. 
Umarım faydalı olmuştur. 
Başarılar dilerim