[英]Unity2D Character stutter with basic movement
我有以下字符移动:如果按空格键,字符会上升。 如果你不按空格键,字符就会下降。
我正在尝试添加一些边界,以便角色不能在区域外 go。 但是,当角色到达顶部时,我会有些口吃。 这样做的正确方法是什么?
我已经尝试在 FixedUpdate 上添加逻辑,但没有修复它。
这是代码:
private bool aboveSky = false;
private bool belowGround = false;
private float sky = -8f;
private float ground = -16.5f;
void Update () {
float positionY = transform.position.y;
aboveSky = positionY >= sky;
belowGround = positionY <= ground;
if (Input.GetKey(KeyCode.Space) && !aboveSky)
{
transform.Translate(-10f * Time.deltaTime, 0f, 0f);
}
else if (!belowGround)
{
transform.Translate(10f * Time.deltaTime, 0f, 0f);
}
}
当您接近阈值点时,它会抖动,然后不断超过它,然后下降并循环。 设置后尝试钳制该值。 钳制该值应使其平滑。
void Update()
{
if(Input.GetKey(KeyCode.Space))
{
transform.Translate(0f, 10f * Time.deltaTime, 0f);
}
else
{
transform.Translate(0f, -10f * Time.deltaTime, 0f);
}
transform.position = new Vector3(transform.position.x, Mathf.Clamp(transform.position.y, ground, sky));
}
当您使用Translate
方法的 x 组件时,我也不确定您是如何在 y 轴上移动的。 您的 object 是否以奇怪的方式旋转? 由于我不确定您的 object 的方向,您可能需要调整上述代码段以满足您的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.