[英]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.