【发布时间】:2014-11-12 19:28:49
【问题描述】:
我正在制作一个游戏,其中有一辆坦克可以射击一些物体。 我想在“X”的 -90 到 90 度之间旋转坦克的枪。 我使用了 transform.rotate 但它以一些浮点值(0.0 到 1.0)旋转枪,我在检查器上看到的旋转是不同的。如何解决这个问题?
【问题讨论】:
我正在制作一个游戏,其中有一辆坦克可以射击一些物体。 我想在“X”的 -90 到 90 度之间旋转坦克的枪。 我使用了 transform.rotate 但它以一些浮点值(0.0 到 1.0)旋转枪,我在检查器上看到的旋转是不同的。如何解决这个问题?
【问题讨论】:
使用Mathf类中的以下代码
static float Clamp(float value, float min, float max);
例如
var angle = Mathf.Clamp(angle, 90, 270);
Quaternion target = Quaternion.Euler(0, 0, angle); // any value as you see fit
transform.rotation = target;
【讨论】:
我找到了我使用 eularAngles 来限制旋转的答案,如下所示
if((gun.eulerAngles.z<90)||(gun.eulerAngles.z>270))
{
gun.Rotate(0,0,turnAngle);
}
【讨论】: