Berbagi teknologi

Game penembak orang ketiga UEC Unreal 5 (2)

2024-07-12

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

UEC++ Unreal 5 game penembak orang ketiga (2)

Senjata granat yang diturunkan

  • Buat yang baru yang diwarisi dariWeaponsubkelas sebagai senjata granat turunan
    Masukkan deskripsi gambar di sini
  • AkanWeapondi kelasFirePenambahan fungsivirtualKata kunci tersebut menjadi fungsi virtual sehingga kelas granat dapat diwarisi dan ditulis ulang.
    Masukkan deskripsi gambar di sini
  • adaProjectileWeaponpenulisan ulang sedangFireFungsinya, membuat variabel template baru untuk menghasilkan proyektil
    Masukkan deskripsi gambar di sini
  • FireLogika penulisan ulang fungsi
    Masukkan deskripsi gambar di sini
  • kode
	//生成的投射物
	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

Senjata mirip granat yang diturunkan

  • Buat cetak biru kelas granat turunan dan tambahkan model mesh ke dalamnya
    Masukkan deskripsi gambar di sini
  • Ubah nama slot di model grid menjadi kamiC++nama didefinisikan dalam
    Masukkan deskripsi gambar di sini
  • MembuatActor Cetak birunya digunakan sebagai peluru, dan peluncur serta jaring bola ditambahkan. Kecepatan awal dan kecepatan maksimum peluncur disetel ke 2000, dan efek pantulan proyektil diaktifkan. Sphere mesh memungkinkan simulasi fisika.
    Masukkan deskripsi gambar di sini
    Masukkan deskripsi gambar di sini
  • Menambahkan cetak biru senjata granat untuk menghasilkan proyektil yang mengekspos peluru yang muncul di cetak biru.
    Masukkan deskripsi gambar di sini
  • Dalam cetak biru karakter, ubah jenis senjata instance menjadi senjata howitzer, lalu ubah objek instance menjadi senjata kelas induk.
    Masukkan deskripsi gambar di sini
  • Tambahkan peristiwa ledakan di cetak biru poin dan tulis logikanya
    Masukkan deskripsi gambar di sini
  • adaBeginPlayPeristiwa logis disebut di
    Masukkan deskripsi gambar di sini
  • hasil operasi
    Silakan tambahkan deskripsi gambar

Efek peningkatan zoom penembak jitu

  • Buat empat variabel baru di kelas karakter, satu digunakan untuk mengaktifkan kemajuan zoom, satu digunakan untuk mewakili bidang pandang zoom, satu digunakan untuk mendapatkan bidang pandang default, dan satu lagi mewakili laju interpolasi linier ke yang baru. perspektif.
    Masukkan deskripsi gambar di sini
  • Buat input operasi klik kanan baru
    Masukkan deskripsi gambar di sini
  • Buat fungsi pemrosesan baru untuk operasi klik kanan
    Masukkan deskripsi gambar di sini
  • Tetapkan sudut pergerakan baru dan kecepatan interpolasi pergerakan
    Masukkan deskripsi gambar di sini
  • adaBeginPlayDapatkan rentang sudut pandang default
    Masukkan deskripsi gambar di sini
  • Klik kanan Logika Fungsi Ikat dan Tetapkan Logika Rentang Interpolasi Linier Perspektif Baru
    Masukkan deskripsi gambar di sini
  • Mengikat operasi masukan
    Masukkan deskripsi gambar di sini
  • Buat input operasi baru di mesin dan tambahkan ke pemetaan
    Masukkan deskripsi gambar di sini
    Masukkan deskripsi gambar di sini
  • Ikat operasi ke cetak biru karakter
    Masukkan deskripsi gambar di sini
  • hasil operasi
    Silakan tambahkan deskripsi gambar

Buat variabel konsol

  • Buat variabel statis baru di kelas senjata sebagai variabel konsol kontrol untuk mengontrol apakah akan menembak dan menggambar garis, dan membuat kelas variabel konsol manajemen otomatis baru
    Masukkan deskripsi gambar di sini
  • FAutoConsoleVariableRef: Kelas untuk mengelola variabel konsol secara otomatis
FAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT