informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Weapon
subkelas sebagai senjata granat turunanWeapon
di kelasFire
Penambahan fungsivirtual
Kata kunci tersebut menjadi fungsi virtual sehingga kelas granat dapat diwarisi dan ditulis ulang.ProjectileWeapon
penulisan ulang sedangFire
Fungsinya, membuat variabel template baru untuk menghasilkan proyektilFire
Logika penulisan ulang fungsi //生成的投射物
UPROPERTY(EditAnywhere,BlueprintReadOnly,Category = "ProjectileWeapon")
TSubclassOf<AActor> ProjectileClass;
//--------------------------------------------------------------------------------------------------
void AProjectileWeapon::Fire()
{
AActor* MyOwner = GetOwner();
if (MyOwner)
{
FVector EyeLocation;
FRotator EyeRotation;
MyOwner->GetActorEyesViewPoint(EyeLocation, EyeRotation);
FActorSpawnParameters SpawnParams;
//设置投射物生成参数:即使生成位置有碰撞,也要强行生成投射物,不进行碰撞检测处理
SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
//获取枪口位置
FVector MuzzleLocation = SkeletalComponent->GetSocketLocation(MuzzleSocketName);
//生成并发射投射物
GetWorld()->SpawnActor<AActor>(ProjectileClass, MuzzleLocation, EyeRotation, SpawnParams);
}
}
C++
nama didefinisikan dalamActor
Cetak birunya digunakan sebagai peluru, dan peluncur serta jaring bola ditambahkan. Kecepatan awal dan kecepatan maksimum peluncur disetel ke 2000, dan efek pantulan proyektil diaktifkan. Sphere mesh memungkinkan simulasi fisika.BeginPlay
Peristiwa logis disebut diBeginPlay
Dapatkan rentang sudut pandang defaultFAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT