赞
踩
Pitch、Yaw、Roll角的概念
Pitch角,也叫俯仰角,用于描述物体绕x轴旋转的旋转角度。对应相机的上下旋转。
float pitch = Mathf.Atan2(direction.y, direction.z) * Mathf.Rad2Deg;
Yaw角,也叫航向角,用于描述物体绕y轴旋转的旋转角度。对应相机的水平旋转。
float yaw = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg;
Roll角,也叫横滚角,用于描述物体绕z轴旋转的旋转角度。相机应保持水平,不应该有横滚角。
代码
给定一个方向,让物体旋转到这个角度(其实用Quaternion.LookRotation就可以..
- float GetYawAngleFromDirection(Vector3 direction)
- {
- float yaw = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg;//所给方向与世界坐标系的z轴夹角(yaw angle,偏航角)
- return yaw;
- }
-
- float GetPitchAngleFromDirection(Vector3 direction)
- {
- float pitch = Mathf.Atan2(direction.y, direction.z) * Mathf.Rad2Deg;
- return pitch;
- }
-
- float GetRollAngleFromDirection(Vector3 direction)
- {
- float roll = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
- return roll;
- }
-
- public void LookRotation(Vector3 direction)
- {
- transform.rotation = Quaternion.Euler(GetPitchAngleFromDirection(direction), GetYawAngleFromDirection(direction), GetRollAngleFromDirection(direction));
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。