C# unity2d游戏中玩家移动不正常
在我的游戏中,上下移动都很好,但左右移动都不起作用 这是我的代码,任何帮助都将不胜感激C# unity2d游戏中玩家移动不正常,c#,unity3d,C#,Unity3d,在我的游戏中,上下移动都很好,但左右移动都不起作用 这是我的代码,任何帮助都将不胜感激 transform.position = Vector2.MoveTowards(transform.position, targetPos, speed * Time.deltaTime); if (Input.GetKeyDown(KeyCode.UpArrow) && transform.position.y < maxY) { targe
transform.position = Vector2.MoveTowards(transform.position, targetPos, speed * Time.deltaTime);
if (Input.GetKeyDown(KeyCode.UpArrow) && transform.position.y < maxY)
{
targetPos = new Vector2(transform.position.x, transform.position.y + increment);
transform.position = targetPos;
}
else if (Input.GetKeyDown(KeyCode.DownArrow) && transform.position.y > minY)
{
targetPos = new Vector2(transform.position.x, transform.position.y - increment);
transform.position = targetPos;
}
else if (Input.GetKeyDown(KeyCode.RightArrow) && transform.position.x > minX)
{
targetPos = new Vector2(transform.position.x, transform.position.x + increment);
transform.position = targetPos;
}
else if (Input.GetKeyDown(KeyCode.LeftArrow) && transform.position.x > minX)
{
targetPos = new Vector2(transform.position.y, transform.position.x - increment);
transform.position = targetPos;
}
transform.position=Vector2.movetoward(transform.position,targetPos,speed*Time.deltaTime);
if(Input.GetKeyDown(KeyCode.UpArrow)&&transform.position.yminY)
{
targetPos=新矢量2(transform.position.x,transform.position.y-增量);
transform.position=targetPos;
}
else if(Input.GetKeyDown(KeyCode.RightArrow)和&transform.position.x>minX)
{
targetPos=新矢量2(transform.position.x,transform.position.x+增量);
transform.position=targetPos;
}
else if(Input.GetKeyDown(KeyCode.LeftArrow)和&transform.position.x>minX)
{
targetPos=新矢量2(transform.position.y,transform.position.x-增量);
transform.position=targetPos;
}
因为在最后两个if部分中,您只增加和减少向量2的y部分
要向右转,您的代码应如下所示:
else if (Input.GetKeyDown(KeyCode.RightArrow) && transform.position.x <maxX)
{
targetPos = new Vector2(transform.position.x + increment, transform.position.y );
transform.position = targetPos;
}
“不工作”是什么意思?当我按右键时,它会向上移动,不会向右移动,也不会在第一次后显示任何移动,左键一样,它会向下移动并停止工作。请通过编辑将这些信息添加到问题中。这里可能应该是“
else if (Input.GetKeyDown(KeyCode.LeftArrow) && transform.position.x > minX)
{
targetPos = new Vector2(transform.position.x - increment, transform.position.y);
transform.position = targetPos;
}