ue5 C++ 如何是一个Actor 每一Tick 去跟踪目标
时间: 2024-03-17 08:43:42 浏览: 184
要让一个Actor每一Tick跟踪目标,可以采用以下步骤:
1. 在Actor类中定义一个指向目标Actor的指针。
2. 在Actor的Tick函数中,使用UE4的函数FindNearestActorOfClass(),找到距离自身最近的目标Actor,并将其指针赋值给目标指针。
3. 如果目标指针不为空,则使用UE4的函数SetActorRotation(),将自身朝向目标Actor。
下面是一个示例代码:
```cpp
void AMyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
// 找到距离自身最近的目标Actor
AActor* NearestActor = GetWorld()->FindNearestActorOfClass<AActor>(TargetClass, GetActorLocation());
if (NearestActor)
{
// 设置自身朝向目标Actor
FVector LookAt = NearestActor->GetActorLocation() - GetActorLocation();
FRotator NewRotation = FRotationMatrix::MakeFromX(LookAt).Rotator();
SetActorRotation(NewRotation);
}
}
```
其中,TargetClass是要跟踪的目标Actor的类名。
阅读全文