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,(小背景)主摄像机是玩家的孩子。 你好 所以我有一个问题,当我的角色仰望天空时,如果我按下W,它将向上移动,这不是我想要的,那么如何阻止这种情况发生,这是我的代码: private void CalculateMovement(){ //运动 float_horizontalInput=Input.GetAxis(“水平”); float _verticalInput=Input.GetAxis(“垂直”); 矢量3 _方向=新矢量3(_水平输入,0,_垂直输入); 矢量3(速度=)方向(速度)

(小背景)主摄像机是玩家的孩子。 你好 所以我有一个问题,当我的角色仰望天空时,如果我按下W,它将向上移动,这不是我想要的,那么如何阻止这种情况发生,这是我的代码:

private void CalculateMovement(){
//运动
float_horizontalInput=Input.GetAxis(“水平”);
float _verticalInput=Input.GetAxis(“垂直”);
矢量3 _方向=新矢量3(_水平输入,0,_垂直输入);
矢量3(速度=)方向(速度);;
_速度=变换。变换。变换方向(_速度);
//鼠标输入和旋转
float _mouseX=Input.GetAxis(“鼠标X”);
float_mouseY=Input.GetAxis(“鼠标Y”);
Vector3鼠标输入=新Vector3(transform.eulerAngles.x-
(_mouseY*_mousesensitivity),transform.eulerAngles.y+
(_mouseX*_mousesensitivity),0);
transform.eulerAngles=鼠标输入;
characterController.Move(_velocity*Time.deltaTime);
}

我想你可以简单地消除
y
上的任何速度,然后将其转换为世界空间向量,如

_velocity = transform.transform.TransformDirection(_velocity);
_velocity.y = 0f;