Unity脚本

1,Transform旋转

  transform.Rotate(X, Y, Z);//分别绕X,Y,Z轴旋转,可写为绕某个轴旋转,栗子transform.Rotate(0, 90, 0);

  transform.Rotate(Vector3.right * Time.deltaTime);//以欧拉角旋转,顺序是ZXY,right是向X轴旋转1度

  transform.Rotate(0, 45, 0, Space.World);//绕世界坐标系的XYZ轴旋转,也就是其顶层父物体的坐标系,如果自身在顶层则没有区别,并不是绕点旋转,而是不按照自身的坐标系旋转

  transform.Rotate(Vector3.up, Space.Self);//绕自身坐标系旋转,这是默认的

  transform.RotateAround(Vector3.zero, Vector3.up, 20 * Time.deltaTime);//绕点旋转,旋转轴,角度

  transform.rotation = Quaternion.identity;//旋转可由四元数直接指定

transform.eulerAngles = new Vector3(angle);//由欧拉角直接指定

自动旋转:

在update中旋转并配合Time.deltaTime即可

2.Quaternion四元数

从以上可以看出我们既可以按角-轴旋转也可以根据向量计算出要旋转的角度

平滑旋转:

transform.rotation = Quaternion.Slerp (from : Quaternion, to : Quaternion,Time.fixedTime* smooth);

Lerp插值比Slerp更快但是如果旋转较远看起来就比较差。

注视旋转:

Quaternion LookRotation(Vector3 forward, Vector3 upwards);

创建一个旋转,沿着forward(z轴)并且头部沿着upwards(y轴)的约束注视。 也就是建立一个旋转,使z轴朝向forward,y轴朝向up。

所得的结果是 以forward为目标朝向时的旋转角,用于控制角色旋转很有用

3,刚体旋转

rigidbody.MoveRotation (rot : Quaternion)

对于运动学刚体,它基于刚体的运动应用摩擦力。模拟刚体的旋转。

如果你想其他的刚体与运动学刚体交互,你需要在FixedUpdate函数中使用它。

4,注视

transform.LookAt (target : Transform, worldUp : Vector3 = Vector3.up) 

旋转物体使z轴(forward)指向目标物体。

当该物体设置了LookAt并指定了目标物体时,该物体的z轴将始终指向目标物体,在设置了worldUp轴向时,该物体在更接近指定的轴向是旋转便的灵活,注意worldUp指的是世界空间,不论你物体在什么位置,只要接近指定的轴方向,旋转会变的更灵活。

5,DoTween旋转
transform.DoLocalRotate();

transform.DoRotate();//函数记不大清楚了,应该就这两个,不清楚的可以在查下

unity中旋转rotation默认是以四元数存储的,按我们的习惯是欧拉角,通常需要将欧拉角转为四元数

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

AndroidStudio封装SDK的那些事

<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael

FLV文件格式

1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.