前几天,看人宅的塔防视频教程,他使用了塔的成员变量rotator。我可能在哪里少写了,所以,老是朝向不对。
跟踪调试了下,发现FRotator是由pitch,roll,yaw三个部分组成,而pitch,roll,yaw是局部坐标系中的朝向,那就设置局部朝向不就ok了么?
FVector targetLocation = target->GetActorLocation();
FVector towerLocation = GetPawn()->GetActorLocation();
FVector deltaVec = targetLocation - towerLocation;
deltaVec.Z = 0;(这里设置为0,是为了只水平偏移)
FRotator theRotator = FRotationMatrix::MakeFromX(deltaVec).Rotator();
GetPawn()->SetActorRelativeRotation(theRotator);
即,deltavec是目标和塔之间的向量,是在局部坐标系下进行的
。
并且正常触发了BeginOverlap事件,
ok,就这样吧