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需要一个浮点值来限制在最小值和最大值之间,您应该规范化移动方向,然后将其乘以幅值。