mforge

Aktif üye
26 Kas 2018
275
2
53
28
A ve B olmak üzere iki takım var. Oyuncu takimını seçip oyuna giriş yaptığında belli bölgeleri ele geçirmesi gerekiyor. 
Bir Bayrak aktörü olusturup icine Sphere Collision ekledim ve aktörü bölgelere yerleştirdim. Bu Aktör collisionun icine herhangi bir takımdan biri girdiğinde bi yükleme bar'ı  çıkıp 10 saniyede dolup bölge o takıma geçiyor. (Tabi bölgeyı aynı yöntemle diğer takim tekrar ele geçirebiliyor. )
Sorum şu;
Collision İcine iki takım da girerse yükleme olmaması veya A takimı girdi ve Bar yüklenirken B takımi da girince iptal olması. Sonra takımdan biri Collisiondan çkarsa içerdeki takım Bar'ın tekrar dolmasını sağlayacak ve takım bölgeyi alcak. 
(Aslnda kısmen hallettim ama iki takm aynı anda girince yükleme olmaması veya iptal etme olayını yapamadm.)

Tam olarak anlamanız için buna örnek olarak aklıma gelen, "For Honor ve Company Of Heroes" oyunlarini örnek verebilirim.
 
Muhtemelen onComponentOverlap ile giren kişileri kontrol ediyorsun ve oradan gitmeye çalışıyorsun. Yapman gereken şey OnComponentOverlap ta sadece giren kişiyi değil içeride olan herkesi alıp ona göre bir mantık oluşturmak. Bunun için OnComponentOverlap tan sonra çarpan aktörü değil , GetAllOverlappingActorsofClass ile girmiş olan yani o an içeride olan herkesi toplayarak bir sistem oluşturman gerekir.
 
takımları ayırmak için component mi yoksa tag mı belirledin bilemiyorum ama collision a giren pawn ları toplayacağın bir array oluştur, her actor girişinde for each loop ile contains component veya tag ile boolean tanımlayıp control ettir, 2 takımdan da mevcutsa boolean false kalsın,  end overlap ile de aynı işlemi yaptır. auto check sistemi kurmuş olursun böylece, her giriş-çıkışta kontrol edilir, bu arada her end overlapta array den remove etmeyi de unutma tabii :)
 
Ufak eksiklikler olsa da kendimce bisiyler yaptım ve çözdüm hocam ama senin çözumünü de merak ediyorum. Müsait olduğunda paylaşırsan da mutlu olurum.
Tabi beklentim A'sından Z'sine degil sadece basit bi örnekle kod kısmını görmem yeterli olur.
(Bu arada Takımlar Enum ile oluşturuldu)
 
Evet video geç geldi ama hiç önemli değil. Ben aslnda çözmüştüm ama seninkisi daha sistemli olmuş. Dolayısyla seninkini kullancam. Zaman ayırmişsın, detaylı anlatmışsın ve güzel anlatmışsn üstadım. Var olasın sağol. 
(Bu arada MR, bay anlamı taşımıyor sadece Adım ve soy adımın baş harfleri) :)
 
Küçücük birşey gözümden kaçmış, end overlap durumunda eğer içeride kimse kalmazsa Stop devreye alınmalı ki ileri sayım dursun. Yalnızca event çağırılacak o kadar  ;)

Screenshot_1.png