杂谈unity 旋转的常用API和其他知识

来源:互联网 发布:linux 生成zip 编辑:程序博客网 时间:2024/06/06 09:29
transform.RotateAround(transform.position, Vector3.up, -2);
this.transform.Rotate(0, 0, -2, Space.Self);

transform.rotation = Quaternion.Euler(transform.eulerAngles + new Vector3(0, 0, 2));

this.transform.localEulerAngles = new Vector3(this.transform.localEulerAngles.x, this.transform.localEulerAngles.y, this.transform.localEulerAngles.z + 3);

Vector3.RotateTowards

Quaternion.LookRotation(direction);

quaternion.lerp

quaternion.slerp


Unity3D游戏开发需要学的东西有很多,下面要给大家介绍的是注视旋转(Quaternion.LookRotation)的实现方法,一起来看看吧。
  编写怪物位置看到目标点,正确写法是Quaternion.lookRotation(Target.positon-Enemy.position)
  
  (Unity3D的坐标,相对这张图片X是横轴,Z是竖轴,下面暂时忽略Y轴)
  从世界坐标系[0.0]分别连接点Target,Enemy坐标点得到两个向量(0→Target,0→Enemy),绿色向量(Enemy→Target)代表怪物看到目标点。
  由向量加减可得,(0→Target)-(0-Enemy)=(Enemy-Target)。故Quaternion.LookRotation(Target.position-Enemy.position)。

其实说白了,LookRotation的含义就是,计算让Z轴对齐forward,让y轴对齐upward 所需要的旋转四元数。


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


  此函数作用是生成一个四元数表示的三维朝向,然后可以直接把这个朝向赋给游戏对象来变更其朝向,也可以通过线性插值(Quaternion.Slerp 和 Quaternion.Lerp)来实现游戏对象从当前朝向转到这个新生成的朝向上来。


在做游戏时会发现有些跟随动作不够圆滑或者需要一个缓冲的效果,这时,一般会考虑到插值。所以对插值的理解是必需的。(比如摄像机跟随主角)。

unity3d中用函数Lerp()来在两者之间插值,两者之间可以是两个材质之间、两个向量之间、两个浮点数之间、两个颜色之间,其函数原型如下:

static Vector3 Lerp(Vector3 from, Vector3 to, float t);

Material.Lerp 插值 (在两个材质之间插值)

Vector2.Lerp 插值 (两个向量之间的线性插值)

Vector3.Lerp 插值 (3D空間中两个向量之间的线性插值)

Mathf.Lerp 插值 (基于浮点数t返回a到b之间的插值)

Color.Lerp 插值 (通过t在颜色a和b之间插值)

首先还是先从数学的角度来看一下什么是插值运算:

线性插值法(linear interpolation) : 线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。

假设我们已知坐标(x0,y0)(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的值。根据图中所示,我们得到两点式直线方程:

假设方程两边的值为α,那么这个值就是插值系数—从x0到x的距离与从x0x1距离的比值。由于x值已知,所以可以从公式得到α的值

    

线性插值公式:

   


Y= Y0+(Y1-Y0)*埃尔法


总结吐糟:插值也就是个距离百分比,所有当然在0-1之间了,所以unity也是这么定义的


在函数中: from + (to - from) * t;这也就是Lerp的返回值。from 是起始的位置,to是目标位置,按照数字t在from到to之间插值。这句话比较难理解,下面举个例子:


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 洗浴柜 橡木浴室柜厂家批发 欧式浴室柜批发 中式浴室柜厂家 卫生间浴室柜用什么材质好 不锈钢卫浴柜批发 浴室组合柜 浴室一体柜 仿古浴室柜批发 仿古浴室柜厂家 浴室柜定制厂家 欧式浴室柜生产厂家 美式浴室柜厂家 浴室柜 定制 整体浴室柜代理 浴室柜用什么材质的好 生产浴室柜厂家 浴室柜那个牌子好 箭牌浴室柜报价 现代浴室柜品牌 橡木浴室柜的价格 古典浴室柜厂家 浴室装饰柜 橡木浴室柜厂 蒂高浴室柜 专业浴室柜厂家 厂家浴室柜 浴室柜那个品牌好 浴室柜哪种好 浴室组合柜品牌 落地式浴室柜 红橡木浴室柜 仿古浴室柜生产厂家 实木现代浴室柜 专业生产浴室柜厂家 简洁浴室柜 好看的浴室柜 浴室柜新款 浴室柜组合 900浴室柜 纯洁浴室柜