unity 移动和旋转函数总结
2020-06-27 本文已影响0人
WOTTOW
获取鼠标X Input.GetAxis("Mouse X")
获取鼠标Y Input.GetAxis("Mouse Y")
鼠标滚轮 Input.GetAxis("Mouse ScrollWheel")
//四元数旋转 解决万象锁
沿着Y轴旋转 Quaternion.AngleAxis(mouseX, Vector3.up);
旋转X轴 Quaternion.Euler(mouseX, 0,0);
旋转X轴(世界坐标) transform.Rotate(new Vector3(0, -Input.GetAxis("Mouse X"), 0) * rotationSpeed, Space.World);
旋转X轴(局部坐标) transform.Rotate(new Vector3(0, -Input.GetAxis("Mouse X"), 0) * rotationSpeed, Space.Self);
//三元素旋转 存在解决万象锁
旋转(世界坐标) currentRotation.eulerAngles
旋转 (局部坐标) currentRotation.localEulerAngles
计算旋转 Quaternion.LookRotation
点乘计算方向 Vector3.Dot
计算两个向量的夹角 Vector3.Cross
//坐标转换
世界坐标转屏幕坐标 Camera.main.WorldToScreenPoint
屏幕坐标转世界坐标 Camera.main.ScreenToWorldPoint(注意:Z轴不能填0)
移动(世界坐标) transform.Translate(Vector3* moveSpeed, Space.World);
移动(局部坐标) transform.Translate(Vector3* moveSpeed, Space.Self);
计算向量的方向向量 Quaternion*Vector3(注意:Vector3也是反向向量)
在game场景中模拟部分移动和旋转
move.gif
Rotation.gif