Unreal Engine: 约束一个pawn在两个角度之间的旋转
Unreal Engine: Constrain a pawn's rotation between two angles
我正在为一个朋友做一个简短的 Unreal Engine 4.9 蓝图,但我对 unreal engine 一点都不熟悉,我要拔头发了。我在网上找了大概2个小时,没找到
我想做的是获取一个从 pawn class 派生的对象的滚动,并将其锁定在两个角度之间。在伪代码中,这样做:
if MyObect.Roll < -50,
MyObject.Roll = -50;
if MyObect.Roll > 50,
MyObject.Roll = 50;
任何形式的帮助或指向正确方向的帮助都将是巨大的帮助。我已经看到一些 post 使用玩家相机管理器,但到目前为止还没有成功。提前致谢。
在这种情况下要做的第一件事就是打印您的值,例如使用 UE_LOG。您会注意到您的值通常在 0 到 360 之间,而不是您自己期望的值(-180 到 180)。
因此,您首先需要 'normalize' 角度,使它们介于 -180 和 180 之间。这样您就可以使用上面发布的代码:)
if (MyObject.Roll < -180.0f) MyObject.Roll += 360.0f;
else if (MyObject.Roll > 180.0f) MyObject.Roll -= 360.0f;
希望对您有所帮助!
我正在为一个朋友做一个简短的 Unreal Engine 4.9 蓝图,但我对 unreal engine 一点都不熟悉,我要拔头发了。我在网上找了大概2个小时,没找到
我想做的是获取一个从 pawn class 派生的对象的滚动,并将其锁定在两个角度之间。在伪代码中,这样做:
if MyObect.Roll < -50,
MyObject.Roll = -50;
if MyObect.Roll > 50,
MyObject.Roll = 50;
任何形式的帮助或指向正确方向的帮助都将是巨大的帮助。我已经看到一些 post 使用玩家相机管理器,但到目前为止还没有成功。提前致谢。
在这种情况下要做的第一件事就是打印您的值,例如使用 UE_LOG。您会注意到您的值通常在 0 到 360 之间,而不是您自己期望的值(-180 到 180)。
因此,您首先需要 'normalize' 角度,使它们介于 -180 和 180 之间。这样您就可以使用上面发布的代码:)
if (MyObject.Roll < -180.0f) MyObject.Roll += 360.0f;
else if (MyObject.Roll > 180.0f) MyObject.Roll -= 360.0f;
希望对您有所帮助!