minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Weapon
subclasse como uma arma de granada derivadaWeapon
em aulaFire
Adição de funçãovirtual
A palavra-chave torna-se uma função virtual para que a classe granada possa ser herdada e reescrita.ProjectileWeapon
reescrita médiaFire
Função, crie uma nova variável de modelo para geração de projéteisFire
Lógica de reescrita de função //生成的投射物
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++
nome definido emActor
O projeto é usado como uma bala, e um lançador e uma malha esférica são adicionados. A velocidade inicial e a velocidade máxima do lançador são definidas para 2.000, e o efeito de rebote do projétil é ativado. A malha esférica permite simulação física.BeginPlay
O evento lógico é chamado emBeginPlay
Obtenha a faixa de ângulo de visão padrão emFAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT