Technologieaustausch

UEC Unreal 5 Third-Person-Shooter-Spiel (2)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

UEC++ Unreal 5 Third-Person-Shooter-Spiel (2)

Abgeleitete Granatenwaffen

  • Erstellen Sie eine neue, von der Sie geerbt habenWeaponUnterklasse als abgeleitete Granatenwaffe
    Fügen Sie hier eine Bildbeschreibung ein
  • WilleWeaponim UnterrichtFireFunktionsergänzungvirtualDas Schlüsselwort wird zu einer virtuellen Funktion, sodass die Granatenklasse geerbt und neu geschrieben werden kann.
    Fügen Sie hier eine Bildbeschreibung ein
  • existierenProjectileWeaponmittleres UmschreibenFireFunktion: Erstellen Sie eine neue Vorlagenvariable zum Erzeugen von Projektilen
    Fügen Sie hier eine Bildbeschreibung ein
  • FireLogik zum Umschreiben von Funktionen
    Fügen Sie hier eine Bildbeschreibung ein
  • Code
	//生成的投射物
	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);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

Abgeleitete granatenähnliche Waffen

  • Erstellen Sie einen Entwurf der abgeleiteten Granatenklasse und fügen Sie das Netzmodell hinzu
    Fügen Sie hier eine Bildbeschreibung ein
  • Ändern Sie den Slotnamen im Rastermodell in „uns“.C++Name definiert in
    Fügen Sie hier eine Bildbeschreibung ein
  • ErstellenActor Der Bauplan wird als Geschoss verwendet und ein Werfer und ein Kugelnetz werden hinzugefügt. Die Anfangsgeschwindigkeit und die Höchstgeschwindigkeit des Werfers werden auf 2000 eingestellt und der Projektil-Rebound-Effekt ist aktiviert. Das Kugelnetz ermöglicht die Simulation der Physik.
    Fügen Sie hier eine Bildbeschreibung ein
    Fügen Sie hier eine Bildbeschreibung ein
  • Der Granatenwaffen-Bauplan wurde hinzugefügt, um Projektile zu erzeugen, die die Spawn-Kugeln im Bauplan freilegen.
    Fügen Sie hier eine Bildbeschreibung ein
  • Ändern Sie im Charakter-Blueprint den Waffentyp der Instanz in eine Haubitze und dann das Objekt der Instanz in die Waffe der übergeordneten Klasse. Dies erleichtert uns das Testen des Problems beim Aufruf der Funktion.
    Fügen Sie hier eine Bildbeschreibung ein
  • Fügen Sie im Bullet-Blueprint ein Explosionsereignis hinzu und schreiben Sie die Logik
    Fügen Sie hier eine Bildbeschreibung ein
  • existierenBeginPlayDas logische Ereignis wird at aufgerufen
    Fügen Sie hier eine Bildbeschreibung ein
  • Operationsergebnis
    Bitte fügen Sie eine Bildbeschreibung hinzu

Zoom-Boost-Effekt des Scharfschützen

  • Erstellen Sie vier neue Variablen in der Zeichenklasse. Eine wird verwendet, um die Vergrößerung des Zooms zu ermöglichen, eine wird verwendet, um das Zoom-Sichtfeld darzustellen, eine wird verwendet, um das Standard-Sichtfeld zu erhalten, und eine stellt die Rate der linearen Interpolation zu einem neuen dar Perspektive.
    Fügen Sie hier eine Bildbeschreibung ein
  • Erstellen Sie eine neue Eingabe für einen Rechtsklick-Vorgang
    Fügen Sie hier eine Bildbeschreibung ein
  • Erstellen Sie eine neue Verarbeitungsfunktion für Rechtsklick-Vorgänge
    Fügen Sie hier eine Bildbeschreibung ein
  • Weisen Sie einen neuen Bewegungswinkel und eine Rate für die Bewegungsinterpolation zu
    Fügen Sie hier eine Bildbeschreibung ein
  • existierenBeginPlayRufen Sie den Standard-Betrachtungswinkelbereich ab
    Fügen Sie hier eine Bildbeschreibung ein
  • Klicken Sie mit der rechten Maustaste auf „Funktionslogik binden“ und legen Sie „Neue perspektivische lineare Interpolationsbereichslogik festlegen“ fest
    Fügen Sie hier eine Bildbeschreibung ein
  • Eingabeoperationen binden
    Fügen Sie hier eine Bildbeschreibung ein
  • Erstellen Sie eine neue Operationseingabe in der Engine und fügen Sie sie der Zuordnung hinzu
    Fügen Sie hier eine Bildbeschreibung ein
    Fügen Sie hier eine Bildbeschreibung ein
  • Binden Sie Operationen an den Charakterentwurf
    Fügen Sie hier eine Bildbeschreibung ein
  • Operationsergebnis
    Bitte fügen Sie eine Bildbeschreibung hinzu

Erstellen Sie Konsolenvariablen

  • Erstellen Sie eine neue statische Variable in der Waffenklasse als Steuerkonsolenvariable, um zu steuern, ob geschossen und Linien gezeichnet werden sollen, und erstellen Sie eine neue Variablenklasse für die automatische Verwaltungskonsole
    Fügen Sie hier eine Bildbeschreibung ein
  • FAutoConsoleVariableRef: Eine Klasse zur automatischen Verwaltung von Konsolenvariablen
FAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT