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# 物体不会连续移动_C#_Unity3d - Fatal编程技术网

C# 物体不会连续移动

C# 物体不会连续移动,c#,unity3d,C#,Unity3d,所以,当我按下左键单击一次时,我试图连续移动对象。但是我试过了,运气不好,有人能帮我吗谢谢 这是我的密码 public class PlayerMovement : MonoBehaviour { private float speed; private Vector2 moveDir; public Transform target; private void Awake() { moveDir = new Vector2(-8, 0)

所以,当我按下左键单击一次时,我试图连续移动对象。但是我试过了,运气不好,有人能帮我吗谢谢

这是我的密码

 public class PlayerMovement : MonoBehaviour
{
    private float speed;
    private Vector2 moveDir;
    public Transform target;
    private void Awake()
    {
        moveDir = new Vector2(-8, 0);
        speed = 0.5f;

    }
    void Update()
    {

        if (Input.GetMouseButton(0))
        {
            transform.LookAt(target, Vector3.zero);
            transform.eulerAngles = new Vector3(0, 0, -45f);
            moveDir.x += speed;
            moveDir.y += speed;
            transform.position = new Vector2(moveDir.x, moveDir.y);
        }

        if (Input.GetMouseButton(1))
        {
            transform.LookAt(target, Vector3.back);
            transform.eulerAngles = new Vector3(0, 0, -135f);
            moveDir.x += speed;
            moveDir.y -= speed;
            transform.position = new Vector2(moveDir.x, moveDir.y);
        }
    }  
}

我不确定你是否想给你的movedir每帧增加速度,例如,在一秒钟内,你可以每帧移动100个单位。。。。那么,你想单击一次,它仍在移动,还是在鼠标按下时仍在移动?我想单击一次,它仍在移动@BugFinderso使用getmousebuttondown,这样它就只有被按下的帧了,让它设置它的移动方式,然后以任何已经存在的速度每帧移动一次set@BugFinder如何在每帧中移动它。出于某种原因,idk应该在哪里放置时间。deltatimome在任何ifs之外移动,因此它每帧都会发生。。通常,移动量乘以deltatime。
    public class PlayerMovement : MonoBehaviour
    {
        bool moveLeft = false;    


        void Update()
        {

            if (Input.GetMouseButton(0))
            {
               moveLeft = true;
            }

            if(moveLeft)
            {
               //Your Movement Code
            }        

        }  
    }