博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3d之关于旋转的一些笔记
阅读量:5018 次
发布时间:2019-06-12

本文共 920 字,大约阅读时间需要 3 分钟。

1.最简单的旋转代码,只需要输入旋转的轴向和旋转速度就可以实现自身的旋转了		this.transform.Rotate (Vector3.up * rotaSpeed); 2.围绕某个点的旋转,参数分别是 1.需要围绕的点 2.旋转的轴向 3.旋转的速度		this.transform.RotateAround (Vector3.zero, Vector3.up, rotaSpeed); 3.旋转的角度		rotaSpeed += Input.GetAxis("Horizontal"); 		transform.eulerAngles = new Vector3(0, rotaSpeed, 0);4.旋转的角度		float tiltAroundZ = Input.GetAxis("Horizontal")*30;			float tiltAroundX = Input.GetAxis("Vertical")*30;		Quaternion target = Quaternion.Euler(tiltAroundX, 0, tiltAroundZ);		transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * 2);

 3和4方法个人认为没有本质上的区别,只是修改的方法不同了而已。

直接修改eulerAngles属性的话,可先配置一个需要旋转的角度,这个角度是可变的,再实例化一个三维向量再需要旋转的轴输入先前配置好的角度就可以了。

希望修改rotation的话需要使用四元数quaternion进行配置,最后对rotation角度进行插值slerp。

最后需要提醒的是,旋转是旋转,角度是角度,这4种方法在update下测试,可简单的理解为:

旋转就是不断的旋转,旋转的速度决定了旋转的快慢;

角度的就是需要旋转的角度,你定义了多少度,那么游戏运行的时候就旋转了多少度,是一次性的。

这大概就是最大的不同了。

 
 
 

转载于:https://www.cnblogs.com/hellozzz/p/4179072.html

你可能感兴趣的文章
FileUpload1.PostedFile.FileName 获取的文件名
查看>>
Mock InjectMocks ( @Mock 和 @InjectMocks )区别
查看>>
Storm学习笔记二
查看>>
BZOJ 1083: [SCOI2005]繁忙的都市
查看>>
JavaSE| String常用方法
查看>>
14.精益敏捷项目管理——认识精益笔记
查看>>
从0开始实现STM32L4XX输出50Hz方波
查看>>
caffe mnist LeNet 参数详细介绍
查看>>
CocoaPods建立私有仓库
查看>>
HIVE中的order by操作
查看>>
Centos下新建用户及修改用户目录
查看>>
iOS开发IPhone以及iPad尺寸汇总
查看>>
Spring Boot RestTemplate文件上传
查看>>
myBatis自动生成mapping,dao和model
查看>>
Android Serivce 高级篇AIDL讲解
查看>>
SpringBoot学习笔记(2):引入Spring Security
查看>>
图片加水印 PDF取缩略图
查看>>
bzoj 4180: 字符串计数
查看>>
安卓--布局设计-计算器
查看>>
Java重写《C经典100题》 --27
查看>>