c# - 如果(transform.rotation.z < 90)不工作

标签 c# unity3d

我卡住了,不知道为什么。这是我目前的代码:

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;
}

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

我想要的是:

如果物体速度大于一(即向上移动)并且物体旋转小于 90°,则将角速度设置为 200f。

否则,如果物体速度小于 -1(即向下移动)并且物体旋转大于 -90°,则将角速度设置为 -200f。

最佳答案

rotation 值是四元数而不是度数。您可能想使用 eulerAngles获得度数的旋转。

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

transform.eulerAngles.z < 90

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

transform.eulerAngles.z > 270

关于c# - 如果(transform.rotation.z < 90)不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21710358/

相关文章:

c# - Lucene.Net IndexReader 的 StructureMap 'conditional singleton'

c# - 是否有HTML的#Region代码

C# 字符串翻译

c# - 抽象类列表

c++ - 是否有可能以简单的方式统一使用 c++/lua 进行编程?

c# - UNET - 让任何玩家向同一个 NetworkIdentity 发送命令

c# - ruby 中的 hmac-sha1 不同于 C# HMACSHA1

c# - Unity 中的鼠标悬停

c# - 程序网格减慢统一场景

c# - 如何修改递归算法以找到最短路径?