Unity中的旋转方式

这篇具有很好参考价值的文章主要介绍了Unity中的旋转方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. transform.rotation 赋值四元数

float x;
void Update () 
{
    x += Time.deltaTime * 10;
    transform.rotation = Quaternion.Euler(x,0,0);
}
Euler 返回一个旋转,它围绕 z 轴旋转 z 度、围绕 x 轴旋转 x 度、围绕 y 轴旋转 y 度(按该顺序应用)。

注意:将欧拉角存储在一个类变量中,并仅使用该变量作为欧拉角进行应用,但从不依赖于读回欧拉值。若从四元数读取、修改并写入欧拉值会造成万向死锁。

错误实例:

void Update () 
{
    var angles = transform.rotation.eulerAngles;
    angles.x += Time.deltaTime * 10;
    transform.rotation = Quaternion.Euler(angles);
}

2. transform.Rotate 方法

void Update(){
    transform.Rotate(new Vector3(0,1f,0),Space.Self);
}

第一个参数:每帧旋转的角度和绕的轴;第二个参数:参考坐标系。

3. transform.RotateAround 方法

void Update(){
    transform.RotateAround(transform.position,transform.up,Time.deltaTime * speed);
}

 第一个参数:物体围绕旋转的位置;第二个参数:旋转绕的轴;第三个参数:角度

4. transform.eulerAngels 给欧拉角赋值

float x;
void Update () 
{
    x += Time.deltaTime * 10;
    transform.eulerAngles = new Vector3(0,x,0);
}

与第一种情况相同要注意万向死锁。

5. Quaternion.identity 无旋转

void Update(){
    transform.rotation = Quaternion.identity;
}

6. Quaternion.Slerp 球形插值(参数3不能为负)

Slerp 在四元数 a 与 b 之间按比率 t 进行球形插值。参数 t 限制在范围 [0, 1] 内。
Inverse 返回 rotation 的反转。
Lerp 在 a 和 b 之间插入 t,然后对结果进行标准化处理。参数 t 被限制在 [0, 1] 范围内。
private float x = 0.0f;
public float speed;
void Update(){
    x += Time.deltaTime * speed;
    var target = Quaternion.Euler(0,x,0);
    transform.rotation = Quaternion.Slerp(transform.rotation,target,Time.deltaTime * speed);
}

7. 刚体.angularVelocity

以弧度每秒为单位测量的刚体的角速度矢量。在大多数情况下,您不应直接修改它,因为这会导致不切实际的行为。

public Rigidbody rb;
void Update(){
    rb.angularVelocity = new Vector3(0,2,0);
}

首先要获取物体的刚体组件。,三维向量作为角速度。 

8. transform.LookAt 方法

物体绕up轴(y轴)转向targe方向。 

public transform target;
void Update(){
    transform.LookAt(target,transform.up);
}

9. Quaternion.FromToRotation 从from到to旋转

通常情况下,使用该方法对变换进行旋转,使其的一个轴(例如 Y 轴)跟随世界空间中的目标方向 /toDirection/。文章来源地址https://www.toymoban.com/news/detail-427469.html

void Start(){
    transform.rotation = Quaternion.FromToRotation(Vector3.up,transform.forward);
}

到了这里,关于Unity中的旋转方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 五、动画 - 旋转rotate

    目录: 1.简介 2.详解 一、 简介 二、 详解 需求:在界面上定义一个box1, 放到视口中,当鼠标移动到他上面,box1开始旋转。 1.基础布局 2.绕X轴旋转,就是水平方向,那你看到的效果,就是他在上下移动,往后仰一样。 3.绕Y轴旋转,就是竖直轴转,看起来像在推门效果 4.先Y轴旋

    2024年02月11日
    浏览(42)
  • 【CSS3】CSS3 3D 转换 ④ ( 3D 旋转 rotate3d | rotate3d 语法 | rotate3d 自定义轴旋转 | 元素旋转方向 - 左手准则 | 代码示例 )

    3D 旋转 指的是 在 三维空间坐标系 中 , 绕 X 轴 , Y 轴 , Z 轴 进行旋转 , 同时还可以绕 自定义轴 进行旋转 ; 2D 旋转只能 以 某个点为中心进行旋转 , 3D 旋转可以绕某个轴进行旋转 ; CSS3 中 3D 旋转 语法 : 绕 X 轴旋转 : 沿着 X 轴 正方向 旋转 45 度 ; 绕 Y 轴旋转 : 沿着 Y 轴 正方向

    2024年02月11日
    浏览(48)
  • Unity 之transform.LookAt() 调整一个物体的旋转,使其朝向指定的位置

    transform.LookAt 是 Unity 引擎中 Transform 组件的一个方法,用于调整一个物体的旋转,使其朝向指定的位置。通常情况下,它被用来使一个物体(如摄像机、玩家角色等)朝向另一个物体、位置或方向。以下是关于 transform.LookAt 方法的详细介绍: 方法签名: 参数说明: target :要

    2024年02月09日
    浏览(51)
  • Android多张图片rotation旋转角度叠加/重叠堆放

    Android大图片之缩略图,以及对原图按照指定宽高裁剪成缩略图-CSDN博客 文章浏览阅读5.3k次。《Android大图片之变换缩略图,以及对原始大图片按照指定宽、高裁剪成缩略图》在Android的ImageView加载图像资源过程中,出于性能和内存开销的需要,有时候需要把一个原始的超大

    2024年02月07日
    浏览(48)
  • Unity三种摄像机旋转方式

    1.按下鼠标右键可以实现摄像机上下左右旋转 2.按下鼠标右键可以实现摄像机围绕某个物体上下左右旋转 3.摄像头始终跟随在某个物体的正后方

    2024年02月13日
    浏览(44)
  • OpenCV图像旋转(cv::rotate)与镜像(cv::flip)

    案例:使用OpenCV实现图像的旋转和镜像操作 所用函数:这里主要使用到了两个函数 1.旋转:cv::rotate 2.镜像:cv::flip   本文福利, 莬 费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,Q

    2024年02月16日
    浏览(52)
  • LeetCode in Python 48. Rotate Image/Matrix (旋转图像/矩阵)

    旋转图像/矩阵的重点是寻找旋转前后对应位置的坐标关系。 示例: 图1 旋转图像/矩阵的输入输出示意图  代码:  解释: 1)外层循环控制需要转的大圈圈数,内层循环控制每一圈需要转的小圈圈数,大小圈数的解释见图2,例如n=4,需要循环n // 2 = 2大圈,其中黄色循环箭头

    2024年04月27日
    浏览(62)
  • scipy spatial transform Rotation库的源代码

    前几日研究scipy的旋转,不知道具体里面怎么实现的,因此搜索一番。 发现Rotation在scipy的表达是用四元数的 https://github.com/jgagneastro/coffeegrindsize/edit/master/App/dist/coffeegrindsize.app/Contents/Resources/lib/python3.7/scipy/spatial/transform/rotation.py from __future__ import division, print_function, absolute_im

    2024年02月08日
    浏览(37)
  • opencv图像旋转和翻转,cv2.flip,cv2.rotate

    目录 翻转图像 图像旋转         opencv中使用cv2.filp可以实现图像翻转 src:输入图像 flipCode:flipCode 一个标志来指定如何翻转数组;0表示上下翻转,正数表示左右翻转,负数表示上下左右都翻转。 dst:输出图像         下面代码对图像进行不同旋转。         opencv中使

    2024年02月15日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包