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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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# 相机在X轴上移动,但不在Y轴上移动_C#_Unity3d_Camera_Transform_Mouse - Fatal编程技术网

C# 相机在X轴上移动,但不在Y轴上移动

C# 相机在X轴上移动,但不在Y轴上移动,c#,unity3d,camera,transform,mouse,C#,Unity3d,Camera,Transform,Mouse,我有一个脚本,因此主摄像头将在x轴上移动。这个很好用。然后我有一个不同的场景,我想让相机在x和y轴上跟随鼠标移动。所以我做了一个新的脚本,我的代码看起来像这样 transform.position = newvector3.Movetowards( Input.GetAxisRaw("mouse X") * speed * Time.DeltaTime, 0f, Input.GetAxisRaw("mouse Y") * speed* Ti

我有一个脚本,因此
主摄像头将在
x
轴上移动。这个很好用。然后我有一个不同的场景,我想让相机在
x
y
轴上跟随鼠标移动。所以我做了一个新的脚本,我的代码看起来像这样

transform.position = newvector3.Movetowards(
        Input.GetAxisRaw("mouse X") * speed * Time.DeltaTime, 
        0f,  
        Input.GetAxisRaw("mouse Y")  * speed* Time.DeltaTime
);

它在
x
轴上精细移动,但根本不在
y
轴上移动。有人知道为什么吗

我认为,如果你不知道目标点在哪里,移动不是改变位置的最佳方式。您只需向坐标添加一个增量:

transform.position += new Vector3(
        Input.GetAxisRaw("mouse X") * speed * Time.DeltaTime, 
        0f,  
        Input.GetAxisRaw("mouse Y")  * speed* Time.DeltaTime
);
如果位置不能增加,请纠正我。 这将在X轴和Z轴上移动对象。

您尝试过吗

transform.position = newvector3.Movetowards(
    Input.GetAxisRaw("mouse X") * speed * Time.DeltaTime,  
    Input.GetAxisRaw("mouse Y")  * speed* Time.DeltaTime,
    0f
);

你不能确定这是否有效,但试试看

public float speed;
    private void Update()
    {

        Vector3 someVector3;


        someVector3.x = Input.GetAxisRaw("mouse x") * speed * Time.deltaTime;
        someVector3.y = Input.GetAxisRaw("mouse y") * speed * Time.deltaTime;
        someVector3.z = 0;

        transform.position += someVector3;
    }
}

0f
传递到向量的
y
分量,并将y移动传递到向量的
z
分量。这是故意的吗?我以为0f只是用来填充向量3中所需的第三个空格。我对此还是新手,0f是否需要其他值?尝试在第二个和第三个向量分量之间切换位置mathf。Clamp需要一个浮点值来限制在最小值和最大值之间,您应该规范化移动方向,然后将其乘以幅值。