unity3D关于最后一个new不是很懂
Quaternionqua=Quaternion.Euler(transform.rotation.eulerAngles);//获取相机当前旋转量floatmouseX...
Quaternion qua = Quaternion.Euler(transform.rotation.eulerAngles);//获取相机当前旋转量
float mouseX = Input.GetAxisRaw("Mouse X") * rotateSpeed * Time.deltaTime;
float mouseY = Input.GetAxisRaw("Mouse Y") * rotateSpeed * Time.deltaTime;//检测鼠标移动
float moveX = Input.GetAxisRaw("Horizontal") * moveSpeed * Time.deltaTime;
float moveZ = Input.GetAxisRaw("Vertical") * moveSpeed * Time.deltaTime; //检测移动
//print(Time.deltaTime);
transform.rotation = Quaternion.Euler(-mouseY + transform.rotation.eulerAngles.x, mouseX + transform.eulerAngles.y, 0);//控制方向
transform.position += qua * new Vector3(moveX, 0, moveZ);
transform.position = new Vector3(Mathf.Clamp(transform.position.x, -95, 95),4, Mathf.Clamp(transform.position.z, -95, 95));
这是我找的一个别人做好的游戏,我拿来学习观摩,但是这边的new不是很懂,调试的过程中是发现这个是为了稳定住物体不会跟着摄像机的镜头到处飞,但是具体为什么不知道,希望能为我解答。 展开
float mouseX = Input.GetAxisRaw("Mouse X") * rotateSpeed * Time.deltaTime;
float mouseY = Input.GetAxisRaw("Mouse Y") * rotateSpeed * Time.deltaTime;//检测鼠标移动
float moveX = Input.GetAxisRaw("Horizontal") * moveSpeed * Time.deltaTime;
float moveZ = Input.GetAxisRaw("Vertical") * moveSpeed * Time.deltaTime; //检测移动
//print(Time.deltaTime);
transform.rotation = Quaternion.Euler(-mouseY + transform.rotation.eulerAngles.x, mouseX + transform.eulerAngles.y, 0);//控制方向
transform.position += qua * new Vector3(moveX, 0, moveZ);
transform.position = new Vector3(Mathf.Clamp(transform.position.x, -95, 95),4, Mathf.Clamp(transform.position.z, -95, 95));
这是我找的一个别人做好的游戏,我拿来学习观摩,但是这边的new不是很懂,调试的过程中是发现这个是为了稳定住物体不会跟着摄像机的镜头到处飞,但是具体为什么不知道,希望能为我解答。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询