如何现实地限制角度?

时间:2018-12-02 03:36:25

标签: unity3d unity3d-2dtools

我的游戏角色是猫;它可以走路和跳跃。问题在于地面上有坡度和孔洞,因此猫有时会向后翻转,如下所示:

Screenshot

实际上可以限制旋转角度吗?即-45至45度,因此它与物理引擎兼容。

我找到了将角度直接设置为transform.rotation = desired Rotation的解决方案,但是它会产生物理伪像,并且当物体开始旋转并突然停止时看起来并不现实。

UPD:我尝试了以下提供的解决方案:

private void FixRotation()
{
    var angles = transform.eulerAngles;
    Debug.Log("Limiting angles: " + minAngle + "; " + maxAngle);
    Debug.Log("Rotation Z: " + angles.z);
    angles.z = Mathf.Clamp(angles.z, minAngle, maxAngle);
    transform.eulerAngles = angles;
    Debug.Log("Fixed rotation Z: " + transform.eulerAngles.z);
}

它不能正常工作。当猫要旋转更多的限制时,由于我需要但是,它会返回,但精灵会开始快速摇动。我在做事吗?

1 个答案:

答案 0 :(得分:0)

我使用this answer的解决方案解决了摇晃的问题。

int main()
{

index = 0;
test("10000.txt", 10000);
index = 0;
test("100000.txt", 100000);
index = 0;
test("1000000.txt", 1000000);
index = 0;
test("10000000.txt", 10000000);


return 0;
}

一种解决方案,当游戏物体的角度在关键区域(大约180度)时,我们需要防止其完全旋转