teriologia

Yeni üye
24 Ocak 2016
6
0
0
(38) Kayseri
sorunum basit ama bir türlü çözemedim AI yaptım ---> 
Bu içeriği görmek için üçüncü parti çerezlerine izin vermeniz gerekli.
Daha fazla detay için çerezler sayfasını ziyaret edin.
şimdi bu AI a health adında bir değişken ekledim ve bu değişkene başlangıçta değer verdim elimdeki balta nın collision u AI ın collision una çarptığında ve left mouse button a bastığımda damage değişkenin deki değer kadar health den eksilecek ama bu collision çapışmasını nasıl kontrol edicem  :huh:
 
teriologia' Alıntı:
Pawn değil hocam normal AI character
cahitburak' Alıntı:
AI tam olarak nedir? AIController mı yoksa Pawn yada Character mi?

"Character" de bir "Pawn"dır. "Pawn" mı "Character" mi diye sormadım zaten. "Pawn" yada "Character" mi yoksa "AIController" mı diye sordum. "AI" denilince kastedilen aslında "AIController"dır. Bu yanlış anlaşılmayı giderelim.

Daha fazla bilgi verilmeli ama 'Balta'nın "Character" üzerinde "attach" edilmiş bir "WeaponActor" olduğunu varsayıyorum. Öncelikle "Character Blueprint" üzerinde "Collider Component"e gelip "OnComponentBeginOverlap" "event"i tanımlanmalı. "Other Actor" çıkışı "WeaponActor"e "Cast" edilmeli, "WeaponActor"e "Cast" edilmiş halinden "Damage" değişkeni alınmalı ve "ApplyDamage" nodunun "BaseDamage" girişine bağlanmalı. Son olarak "Character Blueprint" üzerinde "EventAnyDamage" tanımlanmalı. "EventAnyDamage"in "Damage" çıkışı "Health" değerinden çıkarılmalı ve yinr burada 0'dan küçük olup olmadığı denetlenmeli.

Tam olarak yapılması gereken değil ama benzer bir örnek:
63914-ue4bug.png
 
cahitburak' Alıntı:
teriologia' Alıntı:
Pawn değil hocam normal AI character

"Character" de bir "Pawn"dır. "Pawn" mı "Character" mi diye sormadım zaten. "Pawn" yada "Character" mi yoksa "AIController" mı diye sordum. "AI" denilince kastedilen aslında "AIController"dır. Bu yanlış anlaşılmayı giderelim.

Daha fazla bilgi verilmeli ama 'Balta'nın "Character" üzerinde "attach" edilmiş bir "WeaponActor" olduğunu varsayıyorum. Öncelikle "Character Blueprint" üzerinde "Collider Component"e gelip "OnComponentBeginOverlap" "event"i tanımlanmalı. "Other Actor" çıkışı "WeaponActor"e "Cast" edilmeli, "WeaponActor"e "Cast" edilmiş halinden "Damage" değişkeni alınmalı ve "ApplyDamage" nodunun "BaseDamage" girişine bağlanmalı. Son olarak "Character Blueprint" üzerinde "EventAnyDamage" tanımlanmalı. "EventAnyDamage"in "Damage" çıkışı "Health" değerinden çıkarılmalı ve yinr burada 0'dan küçük olup olmadığı denetlenmeli.

Tam olarak yapılması gereken değil ama benzer bir örnek:
63914-ue4bug.png
hocam şimdi dediğinizi anladım mantıklı ama balta karakterin elindeki sokette ben bu baltayı weaponactor mü yapıcam collider ini çağırabilmek için bilmiyordum weaponactor olarak tanıta bildiğimizi sağolun

AI_controller bu arada doğru deöişsiniz :)
 
teriologia' Alıntı:
hocam şimdi dediğinizi anladım mantıklı ama balta karakterin elindeki sokette ben bu baltayı weaponactor mü yapıcam collider ini çağırabilmek için bilmiyordum weaponactor olarak tanıta bildiğimizi sağolun

AI_controller bu arada doğru deöişsiniz :)

"Collider"ını kullanmak için Actor yapmaya gerek yok. "SkeletalMeshComponent" yada "StaticMeshComponent" olarak da Collider"ı kullanabilirsin. "Character" üzerinde OnComponentBeginOverlap"in "OtherActor" değil "OtherComponent" ini kullanman gerekirdi sadece.

Ancak böyle olursa neye "Cast" edeceğiz. "StaticMeshComponent" olduğu için "StaticMeshComponent"e mi? Evet ona "Cast" edebiliriz ama bu sefer de bu kod, diğer bütün "StaticMeshComponent" ler için çalışır. Ama biz istiyoruz ki bu sadece "Silah" dediğimiz şeyler için geçerli olsun. Daha önemlisi bu sınıf üzerinde "Damage" gibi değerler saklayabilelim. Aşağıdaki gibi bir şey.

  • MeleeWeapon: Actor Blueprint
    • Damage       : float property
    • CriticChance : float property
    • Value           : int property
    • Mesh            : Static Mesh Component
 
cahitburak' Alıntı:
teriologia' Alıntı:
hocam şimdi dediğinizi anladım mantıklı ama balta karakterin elindeki sokette ben bu baltayı weaponactor mü yapıcam collider ini çağırabilmek için bilmiyordum weaponactor olarak tanıta bildiğimizi sağolun

AI_controller bu arada doğru deöişsiniz :)

"Collider"ını kullanmak için Actor yapmaya gerek yok. "SkeletalMeshComponent" yada "StaticMeshComponent" olarak da Collider"ı kullanabilirsin. "Character" üzerinde OnComponentBeginOverlap"in "OtherActor" değil "OtherComponent" ini kullanman gerekirdi sadece.

Ancak böyle olursa neye "Cast" edeceğiz. "StaticMeshComponent" olduğu için "StaticMeshComponent"e mi? Evet ona "Cast" edebiliriz ama bu sefer de bu kod, diğer bütün "StaticMeshComponent" ler için çalışır. Ama biz istiyoruz ki bu sadece "Silah" dediğimiz şeyler için geçerli olsun. Daha önemlisi bu sınıf üzerinde "Damage" gibi değerler saklayabilelim. Aşağıdaki gibi bir şey.

  • MeleeWeapon: Actor Blueprint
    • Damage       : float property
    • CriticChance : float property
    • Value           : int property
    • Mesh            : Static Mesh Component
+1. Hocam value kısmını oluşturmasa daha kolay olmazmı base damage şeklinde float ne kadar damage almasını istiyorsa okadar değer girip set base damage get base damage bağlar birbirine
pBaYM0.png
 
Ozzy' Alıntı:
+1. Hocam value kısmını oluşturmasa daha kolay olmazmı base damage şeklinde float ne kadar damage almasını istiyorsa okadar değer girip set base damage get base damage bağlar birbirine
pBaYM0.png

"Value" ve diğerlerini örnek olması açısından yazdım. O tamamen oyun tasarımına bağlı tabi. Burada da silahın satın alma değerini düşünerek eklemiştim.
 
cahitburak' Alıntı:
teriologia' Alıntı:
hocam şimdi dediğinizi anladım mantıklı ama balta karakterin elindeki sokette ben bu baltayı weaponactor mü yapıcam collider ini çağırabilmek için bilmiyordum weaponactor olarak tanıta bildiğimizi sağolun

AI_controller bu arada doğru deöişsiniz :)

"Collider"ını kullanmak için Actor yapmaya gerek yok. "SkeletalMeshComponent" yada "StaticMeshComponent" olarak da Collider"ı kullanabilirsin. "Character" üzerinde OnComponentBeginOverlap"in "OtherActor" değil "OtherComponent" ini kullanman gerekirdi sadece.

Ancak böyle olursa neye "Cast" edeceğiz. "StaticMeshComponent" olduğu için "StaticMeshComponent"e mi? Evet ona "Cast" edebiliriz ama bu sefer de bu kod, diğer bütün "StaticMeshComponent" ler için çalışır. Ama biz istiyoruz ki bu sadece "Silah" dediğimiz şeyler için geçerli olsun. Daha önemlisi bu sınıf üzerinde "Damage" gibi değerler saklayabilelim. Aşağıdaki gibi bir şey.

  • MeleeWeapon: Actor Blueprint
    • Damage       : float property
    • CriticChance : float property
    • Value           : int property
    • Mesh            : Static Mesh Component

sağol un hocam kafamda olştu blueprint birazdaha geliştirip istediğim 2 sayı arasında rastgele bi damage atıp defans tan çıkarım onu damage olarak atmayı planlıyorum bundan sonra işim bitiyor sadece modelee yapacak arkadaşınn modalleri bitirmesi,level stream
 ve oyunu piyasaya sürmemiz kalıyor