【发布时间】:2020-02-27 08:09:05
【问题描述】:
我是 Unity 的新手,到目前为止,我很享受我的旅程。现在我已经完成了我的刀在 [-30;30] 度范围内的恒定旋转。然而,在用户按下任意键后,我的刀应该会朝着它当前面对的方向快速移动。
如何实现以下行为?我尝试了addForce,改变速度,但没有结果......也许它甚至不可能做到?
这里我的刀面向左角,我希望它能够快速朝那个方向移动。没有花哨的效果:)
这里是刀的初始位置。
这里是源代码:
public void HandleRotation()
{
if (transform.rotation.z >= 0.3f)
{
right = false;
}
else if (transform.rotation.z <= -0.3f)
{
right = true;
}
if (right)
{
begin = begin + 0.05f;
}
else
{
begin = begin - 0.05f;
}
var tiltAroundZ = begin * tiltAngle;
var target = Quaternion.Euler (0, 0, tiltAroundZ);
transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
}
【问题讨论】:
-
如果你试图通过物理引擎移动它,第一个问题是它是否分配了 RigidBody 并且 isKinematic 被禁用?
-
能给我你的刀初始状态截图吗?
-
@Ankit 我更新了我的问题
-
@ViktorVostrikov 抱歉我的回复迟了。你用
transform.up做方向了吗? -
@ViktorVostrikov 所以现在工作正常吗?
标签: unity3d rigid-bodies