【发布时间】:2014-01-28 16:38:10
【问题描述】:
我在 Unity 中创建了一个速度计,我希望我的速度箭头能够平滑地上升到基于凋零或没有按下按钮的最大角度。松开按钮后,我希望箭头回退到原来的旋转值。
但是,我在尝试解决如何使我的对象从其原始位置到新位置并再次返回时遇到问题。我明白了,所以当我按下按钮时,对象会跳到一个位置,但是,我需要它更平滑。有人可以查看我的代码并指出我需要做什么吗?
float maxAngle = 100.0f;
float maxVel = 200.0f;
Quaternion rot0;
public float rotateValue;
// Use this for initialization
void Start ()
{
rot0 = transform.localRotation;
}
// Update is called once per frame
void Update ()
{
if(Input.GetKey(KeyCode.Space))
{
SetNeedle(rotateValue);
}
}
void SetNeedle(float vel)
{
var newAngle = vel * maxAngle / maxVel;
transform.localRotation = Quaternion.Euler(newAngle,0,0) * rot0;
float angle = Mathf.LerpAngle(minAngle, maxAngle, Time.time);
transform.eulerAngles = new Vector3(0, angle, 0);
}
【问题讨论】: