プライベートな連絡先の最初の情報
送料メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Weapon
派生手榴弾武器としてのサブクラスWeapon
クラスでFire
機能追加virtual
キーワードは仮想関数となり、手榴弾クラスを継承して書き換えることができます。ProjectileWeapon
中程度の書き換えFire
関数、発射物を生成するための新しいテンプレート変数を作成しますFire
関数書き換えロジック //生成的投射物
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++
で定義された名前Actor
ブループリントを弾丸として使用し、ランチャーと球体メッシュを追加します。ランチャーの初速と最高速度は 2000 に設定され、弾丸の反発エフェクトがオンになります。球メッシュにより物理シミュレーションが可能になります。BeginPlay
論理イベントは次の場所で呼び出されます。BeginPlay
デフォルトの視野角範囲を取得しますFAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT