2d 我应该改变什么以在Unity中获得更平滑的(点击并保持)控制?
我一直试图用我的代码在Y轴上平滑移动(例如IOS游戏-->太空边界),但它的抖动,绝对不好,不平滑。我应该如何尝试不同的方式?我的球员,我想向上移动,有一个刚体2D `公共阶级运动:单一行为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
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;ifor (int i = 0; i < Input.touchCount; i++)
{
}
for(int i=0;i
谢谢,但是GetMouseButtonDown在手机(IOS)上能用吗?嗯,你对手机的权利我不认为有效,我调整了我的答案,尝试了你的答案,它让事情变得更好,但不是100%。在查看之后,我不得不添加代码touch phase。开始,结束,它工作了。