Мой актер в Unreal Engine (5.2.1) не движется, когда я вызываю функцию SetActorLocation().C++

Программы на C++. Форум разработчиков
Anonymous
 Мой актер в Unreal Engine (5.2.1) не движется, когда я вызываю функцию SetActorLocation().

Сообщение Anonymous »

В Unreal 5.2.1 я пытаюсь каждый раз установить позицию актеров в позицию компонентов сцены, но, похоже, у меня не получается заставить ее работать. Я чувствую, что это должно быть просто, но я не понимаю. >

Код: Выделить всё

void UTriggerComponent::TickComponent(float DeltaTime, ELevelTick TickType,
FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);

AActor* Actor = GetAcceptableActor();
if (Actor != nullptr)
{
Actor->DisableComponentsSimulatePhysics();
FVector Location = SceneComponent->GetComponentLocation();
Actor->SetActorLocation(Location);
shouldMove = true;
Mover->SetShouldMove(true);
}
else
{
Mover->SetShouldMove(false);
}

}
Вот также код моей функции «GetAcceptableActor()»;

Код: Выделить всё

AActor* UTriggerComponent::GetAcceptableActor() const
{
TArray Actors;
GetOverlappingActors(Actors);

for (AActor* Actor : Actors)
{
if (Actor->ActorHasTag(TagName))
{
return Actor;
}
}

return nullptr;
}
Моя переменная SceneComponent — это нечто, объявленное в заголовочном файле, и я использую метод получения, вызываемый в C++ и Blueprint, чтобы получить правильный SceneComponent.
Я знайте наверняка, что
  • Я использую правильный SceneComponent
  • Я также получаю правильного актера, потому что он отключает физика успешно
Я пробовал

[*]Изменить SetActorLocation на, LocationAndRotation, Transform и отдельно
[*]Найти, например, WorldTransform/WorldLocation
[*]Вместо получения GetComponentLocation() получить GetComponentToWorld()
< /ул>

Подробнее здесь: https://stackoverflow.com/questions/790 ... orlocation

Вернуться в «C++»