Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# unity2d游戏中玩家移动不正常_C#_Unity3d - Fatal编程技术网

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;
    }

“不工作”是什么意思?当我按右键时,它会向上移动,不会向右移动,也不会在第一次后显示任何移动,左键一样,它会向下移动并停止工作。请通过编辑将这些信息添加到问题中。这里可能应该是“minX”在某个地方。是的,你是对的,当你向右走的时候,它应该是变换。位置。xelse if (Input.GetKeyDown(KeyCode.LeftArrow) && transform.position.x > minX) { targetPos = new Vector2(transform.position.x - increment, transform.position.y); transform.position = targetPos; }