有一种场景需求,一个float数值,以一定的速度,逼近一个目标数值。不使用tween和差值算法,这里我们用一个超级简单的update自己来算。
float curX;
float targetX;
float speed;
void Update()
{
if (curX != targetX)
{
if (curX > targetX)
{
curX -= speed;
if (curX <targetX)
{
curX = targetX;
}
}
else if (curX < targetX)
{
curX += speed;
if (curX > targetX)
{
curX = targetX;
}
}
}
}float数值无法准确判断,curX == targetX的情况。在对curX做speed变化的时候,curX会在targetX数值附近浮动。这里使用了一些判断,确保curX可以被赋值targetX,一旦curX抵达targetX,就不在对curX的判断和计算。

被折叠的 条评论
为什么被折叠?



