繁体   English   中英

Unity2D 字符口吃与基本动作

[英]Unity2D Character stutter with basic movement

我有以下字符移动:如果按空格键,字符会上升。 如果你不按空格键,字符就会下降。

我正在尝试添加一些边界,以便角色不能在区域外 go。 但是,当角色到达顶部时,我会有些口吃。 这样做的正确方法是什么?

我已经尝试在 FixedUpdate 上添加逻辑,但没有修复它。

这就是正在发生的事情: 我的问题的 GIF

这是代码:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM