目录
1.旋转的三种方式
2.为Transform.rotation赋值
3.使用Transform.Rotate函数
4. 使用Quaternion.RotateTowards函数
5.使用Transform.LookAt函数
6. Transform.RotateAround 围绕旋转
7.Quaternion.LookRotation 注视旋转
8.Quaternion.FromToRotation 从from到to旋转
9.坑
1.旋转的三种方式
1、矩阵旋转 2、欧拉旋转 会造成万向节锁问题 3、四元数旋转 可避免万向节锁现象
2.为Transform.rotation赋值
绕y轴旋转90度
transform.rotation = Quaternion.Euler(0, 90, 0)
3.使用Transform.Rotate函数
transform.Rotate(0,90,0);
4. 使用Quaternion.RotateTowards函数
Quaternion targetRotation = Quaternion.Euler(0, 90, 0);
float rotateSpeed = 90f;
transform.rotation = Quaternion.RotateTowards(transform.rotation,
targetRotation, rotateSpeed * Time.deltaTime);
5.使用Transform.LookAt函数
这个函数会使物体的Z轴指向目标点,因此可以用于朝向目标的情况。
6. Transform.RotateAround 围绕旋转
transform.RotateAround(Point.position, Vector3.forward, 45);
7.Quaternion.LookRotation 注视旋转
Vector3 lookDir = transform_a.position - transform.position; transform.rotation = Quaternion.LookRotation(lookDir);
8.Quaternion.FromToRotation 从from到to旋转
transform.rotation = Quaternion.FromToRotation(from, to);
9.坑
transform.localEulerAngles的获取的值始终为正数,所以在旋转范围为负时,不能直接调用计算
需要定义一个外部变量,如:
private float euler = 0;
minRot_y = GetRotationY(false);
maxRot_y = GetRotationY(true);
euler = Mathf.Clamp(euler - speed, minRot_y, maxRot_y);
//myCamera.transform.localEulerAngles =文章来源:https://www.toymoban.com/news/detail-468372.htmlnew Vector3(myCamera.transform.localEulerAngles.x, eulerY, 0);
myCamera.transform.localRotation = Quaternion.Euler(myCamera.transform.localEulerAngles.x, eulerY, 0);文章来源地址https://www.toymoban.com/news/detail-468372.html
到了这里,关于unity---物体旋转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!