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
上一篇下一篇

猜你喜欢

热点阅读