操作演示
旋转 (online-video-cutter.com)
旋转方法都放在了按钮上,第一个是初始化按钮,将cube恢复到(0,0,0),但是位置不会变成(0,0,0)
这个是参数,x,y,z自己修改可以动态让cube旋转
旋转方法介绍
1.transform.rotation
//这里是将物体旋转到指定的角度transform.eulerAngles,是对于世界坐标来旋转的,而不是面板上的参数(不会运动)
//这里改变的是欧拉角,所以是一个变化值,是直接从0,0,0变到指定的xyz
transform.rotation=Quaternion.Euler(x,y,z);
2.transform.Rotate
//这里是根据三个轴来旋转,后面是自身是轴向还是世界轴向,这个也是eulerAngles(运动变化)
//这里可以让自身旋转,自己控制大小速度
transform.Rotate(new Vector3(x*Time.deltaTime,y*Time.deltaTime,z*Time.deltaTime),Space.Self);
3. transform.RotateAround
//围绕旋转 第二个参数是根据围绕的那个方向
transform.RotateAround(point.position,Vector3.back, x*Time.deltaTime);
4. Quaternion.identity
//恒等式旋转,就是不旋转,这个选项就是生成物体的时候默认的不旋转选项
//选择这个就不会发生旋转了
transform.rotation = Quaternion.identity;
5.Quaternion.AngleAxis
//以某个角轴来进行旋转
transform.rotation = Quaternion.AngleAxis(x*Time.realtimeSinceStartup, Vector3.forward);
6.transform.rotation.ToAngleAxis
//将point的角轴放到cube身上
float angle;
Vector3 axis;
point.rotation.ToAngleAxis(out angle, out axis);
transform.rotation = Quaternion.AngleAxis(angle*Time.realtimeSinceStartup, axis);
7. transform.LookAt
//cube朝向point
transform.LookAt(point);
8.Quaternion.LookRotation
//可以达到lookat相同的效果,大多数优先使用lookat
Vector3 dir = point.position - transform.position;
transform.rotation = Quaternion.LookRotation(dir);
9.Quaternion.FromToRotation
//这个不太清楚
Vector3 from=Vector3.up;
Vector3 to=Vector3.back;
transform.rotation=Quaternion.FromToRotation(from,to);
10.Quaternion.Lerp
//插值旋转,从a到b旋转,让a到b复制rotation(参数3不能为负)
transform.rotation = Quaternion.Lerp(transform.rotation, point.rotation, Time.time * 0.1f);
11. Quaternion.Slerp
//插值旋转,从a到b旋转,让a到b复制rotation(参数3不能为负)
transform.rotation = Quaternion.Slerp(transform.rotation, point.rotation, Time.time * 0.1f);
12.Quaternion.RotateTowards
//转向point,(参数3能为负)
transform.rotation=Quaternion.RotateTowards(transform.rotation,point.rotation,-Time.time*0.1f);
13.Quaternion.Inverse
//求反,将cube的rotation变成point的rotation相反数
transform.rotation = Quaternion.Inverse(point.rotation);
项目资源
传送门
提取码:hn60
失效的话可私信发送