2d 我应该改变什么以在Unity中获得更平滑的(点击并保持)控制?

2d 我应该改变什么以在Unity中获得更平滑的(点击并保持)控制?,2d,touch,tap,taphold,2d,Touch,Tap,Taphold,我一直试图用我的代码在Y轴上平滑移动(例如IOS游戏-->太空边界),但它的抖动,绝对不好,不平滑。我应该如何尝试不同的方式?我的球员,我想向上移动,有一个刚体2D `公共阶级运动:单一行为 public float currentVelocity = 0.0f; public float accelerationRate = 0.0079f; public float decelerationRate = 3.0f; public float initialVelocity = 1.0f; p

我一直试图用我的代码在Y轴上平滑移动(例如IOS游戏-->太空边界),但它的抖动,绝对不好,不平滑。我应该如何尝试不同的方式?我的球员,我想向上移动,有一个刚体2D

`公共阶级运动:单一行为

public float currentVelocity = 0.0f;
public float accelerationRate = 0.0079f;
public float decelerationRate = 3.0f;
public float initialVelocity = 1.0f;
public float finalVelocity = 2.0f;

// Update is called once per frame
void Update()
{
    for (int i = 0; i < Input.touchCount; i++)
    {
        if (Input.touchCount > 0)
        {
            currentVelocity = currentVelocity + (accelerationRate * Time.fixedDeltaTime);
            transform.Translate(0, currentVelocity,0 ); //
        }
        else
        {

            currentVelocity = currentVelocity - (decelerationRate * Time.fixedDeltaTime);
            if (currentVelocity > 0)
            {
                transform.Translate(0, currentVelocity,0 ); //
            }
            else
            {
                transform.Translate(0, 0, 0);
            }
        }
        currentVelocity = Mathf.Clamp(currentVelocity, initialVelocity, finalVelocity);
    }
}
public float currentVelocity=0.0f;
公众浮存加速率=0.0079f;
公共浮子减速率=3.0f;
公共浮点数初始速度=1.0f;
公共浮动最终利率=2.0f;
//每帧调用一次更新
无效更新()
{
对于(int i=0;i0)
{
currentVelocity=currentVelocity+(加速率*时间固定时间);
transform.Translate(0,currentVelocity,0)//
}
其他的
{
currentVelocity=currentVelocity-(减速率*时间固定时间);
如果(当前速度>0)
{
transform.Translate(0,currentVelocity,0)//
}
其他的
{
transform.Translate(0,0,0);
}
}
currentVelocity=数学钳位(currentVelocity、initialVelocity、finalVelocity);
}
}
}`

不要使用for(int i=0;i 试着删除这个,保持代码的其余部分不变,也许只是更改加速变量

for (int i = 0; i < Input.touchCount; i++)
{

} 
for(int i=0;i
谢谢,但是GetMouseButtonDown在手机(IOS)上能用吗?嗯,你对手机的权利我不认为有效,我调整了我的答案,尝试了你的答案,它让事情变得更好,但不是100%。在查看之后,我不得不添加代码touch phase。开始,结束,它工作了。