Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
AI Attack
#1
Şimdi oyunda bir yapay zeka bize saldırsın istiyorsak kendi karakterimizi cast etmeliyiz ve saldırma işlemlerinden sonra applydamage vs vermeliyiz.

Fakat şöyle bir sorun ortaya çıkıyor. Oyunda 200 tane farklı npc birbirine saldıracak mesela her biri için diğer her karakteri Cast mı edeceğiz ? Tamam bu npc bana saldırabilir fakat aynı zamanda diğer npclere de saldırabilir ? Bu işin içinden nasıl çıkılır ? Herkese saldıracak mesela bu npc. Hem oyunculara hem yapay zekalara saldıracak mesela.
Ara
Cevapla
#2
Saldırılabilir aktörlere tag ekleyebilirsin. Actor has tag nodu ile saldırılabilir olup olmadığını kontrol edebilirsin. Interface kullanarak da farklı aktörlerde cast yapmadan aynı fonksiyonu implement edip çağırabilirsin. Zaten apply damage fonksiyonları aktör sınıfında olduğu için oluşturduğun tüm aktörlerde inheritence ile geliyor o fonsiyon cast yapmana gerek yok. hit result ya da overlap dan gelen aktör pinine direk apply damage bağlayabilirsin.
Ara
Cevapla
#3
Bu yetersiz bir yöntem bence. Mesela aktörlerin can değerleri var canı 20 ye gelirse vurmasını istemiyorum diyelim ki. Aktörün can değerini göremem ki ? Genel bir aktör kavramı olduğu için. Farklı bir yöntem vardır ama ne olduğunu ben bilmiyorum... Blueprint interfacenin ne işe yaradığını bilmiyorum...
Ara
Cevapla
#4
Dediğimi yapabilirsin yetersiz değil. Saldırılabilir aktörlere health interface diye bir interface oluşturup ekle. GetHealth fonksiyonu yarat. Bu interface i eklediğin tüm aktör sınıflarına implement edebilirsin. Cast yapmana gerek kalmaz. Yeni aktör sınıfları eklediğinde mevcut sistemde değişiklik yapmanı gerektirmez. Sadece eklediğin her sınıfa bu fonsiyonu implement edeceksin o kadar. 

Bu da yetersiz geliyorsa daha gelişmiş bir sistem component sistemini dene. Saldırılabilir tüm aktörlere kendin oluşturduğun bir health component ekle. Hit result ya da overlaptan gelen aktöre get component by class ile health componenti çağır. Is valid nodu ile saldırılabilir olup olmadığını anlarsın. Valid ise gelen componentten canına bakıp saldırtabilirsin. Ben component sistemini tercih ederim çünkü bu komponenti başka oyunlarda da kullanabilirsin migrate ile.
Ara
Cevapla
#5
Alıntı:Dediğimi yapabilirsin yetersiz değil. Saldırılabilir aktörlere health interface diye bir interface oluşturup ekle. GetHealth fonksiyonu yarat. Bu interface i eklediğin tüm aktör sınıflarına implement edebilirsin. Cast yapmana gerek kalmaz. Yeni aktör sınıfları eklediğinde mevcut sistemde değişiklik yapmanı gerektirmez. Sadece eklediğin her sınıfa bu fonsiyonu implement edeceksin o kadar. 

Bu da yetersiz geliyorsa daha gelişmiş bir sistem component sistemini dene. Saldırılabilir tüm aktörlere kendin oluşturduğun bir health component ekle. Hit result ya da overlaptan gelen aktöre get component by class ile health componenti çağır. Is valid nodu ile saldırılabilir olup olmadığını anlarsın. Valid ise gelen componentten canına bakıp saldırtabilirsin. Ben component sistemini tercih ederim çünkü bu komponenti başka oyunlarda da kullanabilirsin migrate ile.

Burada Cnrt aslında tam olması gereken bilgiyi vermiş, multiplayer bir oyun düşün, zaten kimseyi kimseye cast edemez, dolayısıyla elinde " Tag, interface, component" seçeneklerinden başka bir şey yok ki sonuç almak için fazla bile bu konuları araştırırsan rahatlıkla istediğin sonuca ulaşacaksın.
Ara
Cevapla
 


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Attack ve Defense Sistemi Hakkında mrtcnaslnts 6 750 04-10-2020, Saat: 18:25
Son Yorum: mrtcnaslnts
  Spin Attack Yapmak theysfkaan 4 1,120 24-01-2018, Saat: 18:49
Son Yorum: nazim
  Melee Attack Leralonde 2 1,033 10-05-2016, Saat: 02:40
Son Yorum: Leralonde
  Yapay zeka (AI) karakterimin yanına yaklaştığında attack animasyonu ve damage Onlyleblanc05 2 1,871 09-12-2015, Saat: 21:48
Son Yorum: TornadoTT

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi

Unreal Engine Türkiye

This forum is community driven and supported by voluntary community members. It has nothing to do with Epic Games.

Bu site sadece destek amaçlıdır. Epic Games ile bir ilgisi yoktur.