繁体   English   中英

Unity 2D 自上而下播放器在鼠标指针上闪烁

[英]Unity 2D Top-Down Player flickers over the mouse pointer

所以我在 Unity 中制作 Top-Down 射击游戏。 我用“跟随鼠标”逻辑制作了 PlayerMovement。 现在我想设置玩家精灵不会越过鼠标指针:

if (Vector2.Distance(Camera.main.ScreenToWorldPoint(Input.mousePosition), transform.position) <= 0.1f)
    {
        return;
    }

我真的不明白为什么这不起作用。 我尝试将值设置为高于 0.1f 但没有区别。 这是显示正在发生的事情的 gif

我可以使用什么其他技术来解决这个问题?

更新:我设法通过创建公共变量半径来解决鼠标闪烁问题,然后使用if语句检查半径是否小于鼠标指针的 position。

private void LateUpdate()
{
    if (Vector2.Distance(Input.mousePosition, Camera.main.WorldToScreenPoint(transform.position)) <= radius)
    {

        return;
    }

    transform.Translate(0f, move, 0f);
    transform.Rotate(0f, 0f, rotation);

    
}

Vector2.Distance Vector2.Distance(Camera.main.ScreenToWorldPoint(Input.mousePosition), transform.position) <= 0.1f)

此外,我犯了一个初学者错误,因为我不断尝试将if语句放在Update() function 中,而不是将其放在玩家移动逻辑所在的LateUpdate()中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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