2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Weapon
alaluokkaa johdettuna kranaattiaseenaWeapon
luokassaFire
Toiminnon lisäysvirtual
Avainsanasta tulee virtuaalinen funktio, jotta kranaattiluokka voidaan periä ja kirjoittaa uudelleen.ProjectileWeapon
keskikokoinen uudelleenkirjoitusFire
Funktio, luo uusi mallimuuttuja ammusten luomista vartenFire
Funktioiden uudelleenkirjoituslogiikka //生成的投射物
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++
kohdassa määritelty nimiActor
Suunnitelmaa käytetään luodina, ja siihen lisätään kantoraketti ja palloverkko Laukaisimen alkunopeudeksi ja maksiminopeudeksi on asetettu 2000, ja ammuksen rebound-efekti otetaan käyttöön. Palloverkko mahdollistaa fysiikan simuloinnin.BeginPlay
Looginen tapahtuma kutsutaan kloBeginPlay
Ota oletuskatselukulma-alue sisäänFAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT