Condivisione della tecnologia

UEC Unreal 5 gioco sparatutto in terza persona (2)

2024-07-12

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

UEC++ Unreal 5 gioco sparatutto in terza persona (2)

Armi granate derivate

  • Creane uno nuovo ereditato daWeaponsottoclasse come arma granata derivata
    Inserisci qui la descrizione dell'immagine
  • VolereWeaponin classeFireAggiunta di funzionivirtualLa parola chiave diventa una funzione virtuale in modo che la classe granata possa essere ereditata e riscritta.
    Inserisci qui la descrizione dell'immagine
  • esistereProjectileWeaponriscrittura mediaFireFunzione, crea una nuova variabile modello per generare proiettili
    Inserisci qui la descrizione dell'immagine
  • FireLogica di riscrittura delle funzioni
    Inserisci qui la descrizione dell'immagine
  • codice
	//生成的投射物
	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

Armi derivate simili a granate

  • Crea un progetto della classe granata derivata e aggiungivi il modello mesh
    Inserisci qui la descrizione dell'immagine
  • Cambia il nome dello slot nel modello a grigliaC++nome definito in
    Inserisci qui la descrizione dell'immagine
  • CreareActor Il progetto viene utilizzato come un proiettile e vengono aggiunti un lanciatore e una rete sferica. La velocità iniziale e la velocità massima del lanciatore sono impostate su 2000 e l'effetto di rimbalzo del proiettile è attivato. La mesh sferica consente la simulazione fisica.
    Inserisci qui la descrizione dell'immagine
    Inserisci qui la descrizione dell'immagine
  • Aggiunto il progetto dell'arma granata per generare proiettili che espongono i proiettili di spawn nel progetto.
    Inserisci qui la descrizione dell'immagine
  • Nel progetto del personaggio, cambia il tipo di arma dell'istanza in un'arma obice, quindi cambia l'oggetto dell'istanza nell'arma della classe genitore. Questo ci renderà più semplice testare il problema quando chiamiamo la funzione.
    Inserisci qui la descrizione dell'immagine
  • Aggiungi un evento di esplosione nel progetto del proiettile e scrivi la logica
    Inserisci qui la descrizione dell'immagine
  • esistereBeginPlayL'evento logico viene chiamato a
    Inserisci qui la descrizione dell'immagine
  • risultato dell'operazione
    Aggiungi la descrizione dell'immagine

Effetto di potenziamento dello zoom del cecchino

  • Crea quattro nuove variabili nella classe di caratteri, una viene utilizzata per abilitare l'avanzamento dello zoom, una viene utilizzata per indicare l'intervallo del campo visivo dello zoom, una viene utilizzata per ottenere l'intervallo del campo visivo predefinito e una viene utilizzata per rappresentare la velocità di interpolazione lineare in una nuova prospettiva.
    Inserisci qui la descrizione dell'immagine
  • Crea un nuovo input per l'operazione del tasto destro
    Inserisci qui la descrizione dell'immagine
  • Crea una nuova funzione di elaborazione per le operazioni del tasto destro
    Inserisci qui la descrizione dell'immagine
  • Assegnare un nuovo angolo di movimento e una velocità per l'interpolazione del movimento
    Inserisci qui la descrizione dell'immagine
  • esistereBeginPlayOttieni l'intervallo dell'angolo di visione predefinito
    Inserisci qui la descrizione dell'immagine
  • Fare clic con il pulsante destro del mouse su Associa logica funzione e Imposta nuova logica intervallo di interpolazione lineare prospettica
    Inserisci qui la descrizione dell'immagine
  • Associa le operazioni di input
    Inserisci qui la descrizione dell'immagine
  • Crea un nuovo input di operazione nel motore e aggiungilo alla mappatura
    Inserisci qui la descrizione dell'immagine
    Inserisci qui la descrizione dell'immagine
  • Associa le operazioni al progetto del personaggio
    Inserisci qui la descrizione dell'immagine
  • risultato dell'operazione
    Aggiungi la descrizione dell'immagine

Crea variabili della console

  • Crea una nuova variabile statica nella classe arma come variabile della console di controllo per controllare se sparare e tracciare linee e creare una nuova classe variabile della console di gestione automatica
    Inserisci qui la descrizione dell'immagine
  • FAutoConsoleVariableRef: una classe per la gestione automatica delle variabili della console
FAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT