我知道虚幻脚本很旧,但我希望有人可以帮助我......我正在尝试制作一个 Pawn 预览界面,该界面基本上向玩家显示 Pawn 并让它旋转。无论玩家移动到哪里,Pawn 都应该保持在界面中的同一位置......
我已经制作了这个功能,但是当我尝试使用 Yaw 旋转它时,如果我改变玩家的相机方向,它也会导致预览演员的旋转发生变化。如果我移除 Yaw 调整,预览 actor 的旋转在玩家相机旋转改变时不再改变(但它也不会沿着 Yaw 旋转)。
为简化起见,我想绘制一个静态 pawn,无论玩家的摄像机角度如何,它都会在同一屏幕位置旋转。
function RenderModel(Canvas C, PlayerController PO, string ActorToSpawn, vector ParentLocation, rotator ParentRotation)
{
local vector CamPos,X,Y,Z;
local rotator CamRot;
local rotator ModelRotation;
local Pawn PawnToDisplay;
local PlayerController PlayerOwner;
PlayerOwner = PO;
PawnToDisplay = PlayerOwner.Spawn(class<Pawn>(DynamicLoadObject(ActorToSpawn,class'Class')));
if(PawnToDisplay != None)
{
CamPos = Location;
CamRot = Rotation;
GetAxes(CamRot,X,Y,Z);
ModelRotation = OrthoRotation(-X,-Y,Z);
// This causes the issue...
ModelRotation.Yaw += YawOffset;
YawOffset += 50;
if(YawOffset >= 65536)
{
YawOffset = 0.0;
}
PawnToDisplay.SetLocation(CamPos + (ModelPosition.X * X) + (ModelPosition.Y * Y) + (ModelPosition.Z * Z));
PawnToDisplay.SetRotation(ModelRotation);
C.DrawActor(PawnToDisplay,false,true,90);
}
}