如果(transform.rotation.z <90)不起作用

Hen*_*-95 1 c# unity-game-engine

我被困住了,不知道为什么.这是我目前的代码:

if(rigidbody2D.velocity.y >= 1 && transform.rotation.z < 90)
{
    rigidbody2D.angularVelocity = 200f;

}
else if (rigidbody2D.velocity.y < 0 && transform.rotation.z > -90)
{
    rigidbody2D.angularVelocity = -200f;
}
Run Code Online (Sandbox Code Playgroud)

除了transform.rotation.z之外,它完全正常工作,它完全忽略了它就好像它不存在一样.

我想要的是:

如果物体速度大于1(即向上行进)并且物体旋转小于90°,​​则将角速度设定为200f.

否则,如果物体速度小于-1(即向下行进)并且物体旋转超过-90°,则将角速度设定为-200°F.

Jur*_*obl 6

rotation值是在程度和四元数不是.您可能希望使用eulerAngles来获得度数的旋转.

所以你可以使用类似的东西:

transform.eulerAngles.z < 90
Run Code Online (Sandbox Code Playgroud)

您不应该使用负值,而不是-90使用270:

transform.eulerAngles.z > 270
Run Code Online (Sandbox Code Playgroud)