Обмен технологиями

UEC Unreal 5 шутер от третьего лица (2)

2024-07-12

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

UEC++ Unreal 5 шутер от третьего лица (2)

Производное гранатометное оружие

  • Создать новый, унаследованный от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);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

Производное гранатоподобное оружие

  • Создайте проект производного класса гранаты и добавьте к нему сетку-модель.
    Вставьте сюда описание изображения
  • Измените имя слота в модели сетки на наше.C++имя, определенное в
    Вставьте сюда описание изображения
  • СоздаватьActor В качестве пули используется чертёж, а также добавляется пусковая установка и сетка сферы. Начальная и максимальная скорость пусковой установки установлены на 2000, а также включен эффект отскока снаряда. Сферическая сетка позволяет моделировать физику.
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Добавлен чертеж гранатового оружия для создания снарядов, обнажающих порождаемые пули на чертеже.
    Вставьте сюда описание изображения
  • В чертеже персонажа измените тип оружия экземпляра на гаубицу, а затем измените объект экземпляра на оружие родительского класса. Это облегчит нам тестирование проблемы при вызове функции.
    Вставьте сюда описание изображения
  • Добавьте событие взрыва в схему пули и напишите логику.
    Вставьте сюда описание изображения
  • существоватьBeginPlayЛогическое событие вызывается в
    Вставьте сюда описание изображения
  • результат операции
    Пожалуйста, добавьте описание изображения

Эффект увеличения зума снайпера

  • Создайте четыре новые переменные в классе символов: одна используется для включения увеличения масштаба, одна используется для представления поля обзора масштаба, одна используется для получения поля обзора по умолчанию и одна представляет скорость линейной интерполяции к новому перспектива.
    Вставьте сюда описание изображения
  • Создайте новый ввод операции щелчка правой кнопкой мыши.
    Вставьте сюда описание изображения
  • Создайте новую функцию обработки для операций щелчка правой кнопкой мыши.
    Вставьте сюда описание изображения
  • Назначьте новый угол движения и скорость интерполяции движения.
    Вставьте сюда описание изображения
  • существоватьBeginPlayПолучите диапазон углов обзора по умолчанию в
    Вставьте сюда описание изображения
  • Щелкните правой кнопкой мыши «Логику функции привязки» и выберите «Задать новую логику диапазона линейной интерполяции перспективы».
    Вставьте сюда описание изображения
  • Привязка операций ввода
    Вставьте сюда описание изображения
  • Создайте новый ввод операции в движке и добавьте его в сопоставление.
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Привязка операций к чертежу персонажа
    Вставьте сюда описание изображения
  • результат операции
    Пожалуйста, добавьте описание изображения

Создание консольных переменных

  • Создайте новую статическую переменную в классе оружия в качестве переменной консоли управления, чтобы контролировать, нужно ли стрелять и рисовать линии, а также создайте новый класс переменных консоли автоматического управления.
    Вставьте сюда описание изображения
  • FAutoConsoleVariableRef: класс для автоматического управления переменными консоли.
FAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT