• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Как получить позицию перед актором?

  • Автор темы Автор темы manking
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
8 Ноя 2022
Сообщения
28
Реакции
0
Нужно получить позицию для камеры чтобы снять персонажа лицом вперед.
Но пока не очень понимаю, как получиться точку перед персонажем (чтобы развернуть камеру на него).

// Беру точку самого персонажа тут все ок.
C++:
Expand Collapse Copy
FVector3d enemyLocation = unit3D->GetActorLocation();

// Дальше нужна точка впереди перед персонажем с учетом его поворота
C++:
Expand Collapse Copy
FVector3d inFrontOfPoint =unit3D->GetActorForwardVector().Normalize() * FVector3d(200,200,200);

Но тут точка перемещается не прямо вперед от персонажа, а куда то вбок

// Дальше нужно развернуть камеру в сторону персонажа
C++:
Expand Collapse Copy
this->SetActorRotation(FRotator::Euler(0,180,0));
 
C++:
Expand Collapse Copy
// Будем ставить камеру спереди актера на расстоянии двух метров. Normalize делать необязательно на сколлько я помню.
FVector CameraLocation = unit3D->GetActorForwardVector() * 200;

// Получаем вектор направления камеры
FVector CameraDirection = enemyLocation - CameraLocation;

// Меняем положение камеры
Camera->SetActorLocation (CameraLocation);
Camera->SetActorRotation (MakeRotFromX (CameraDirection));
 
Назад
Сверху Снизу