• Unity 旋转大总结和项目操作


    操作演示

    旋转 (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);
    
    • 1
    • 2
    • 3

    2.transform.Rotate

    //这里是根据三个轴来旋转,后面是自身是轴向还是世界轴向,这个也是eulerAngles(运动变化)
    //这里可以让自身旋转,自己控制大小速度
    transform.Rotate(new Vector3(x*Time.deltaTime,y*Time.deltaTime,z*Time.deltaTime),Space.Self);
    
    • 1
    • 2
    • 3

    3. transform.RotateAround

    //围绕旋转  第二个参数是根据围绕的那个方向
    transform.RotateAround(point.position,Vector3.back, x*Time.deltaTime);
    
    • 1
    • 2

    4. Quaternion.identity

    //恒等式旋转,就是不旋转,这个选项就是生成物体的时候默认的不旋转选项
    //选择这个就不会发生旋转了
    transform.rotation = Quaternion.identity;
    
    • 1
    • 2
    • 3

    5.Quaternion.AngleAxis

    //以某个角轴来进行旋转 
    transform.rotation = Quaternion.AngleAxis(x*Time.realtimeSinceStartup, Vector3.forward);
    
    • 1
    • 2

    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);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7. transform.LookAt

    //cube朝向point
    transform.LookAt(point);
    
    • 1
    • 2

    8.Quaternion.LookRotation

    //可以达到lookat相同的效果,大多数优先使用lookat
    Vector3 dir = point.position - transform.position;
    transform.rotation = Quaternion.LookRotation(dir);
    
    • 1
    • 2
    • 3

    9.Quaternion.FromToRotation

    //这个不太清楚
    Vector3 from=Vector3.up;
    Vector3 to=Vector3.back;
    transform.rotation=Quaternion.FromToRotation(from,to);
    
    • 1
    • 2
    • 3
    • 4

    10.Quaternion.Lerp

     //插值旋转,从a到b旋转,让a到b复制rotation(参数3不能为负)
    transform.rotation = Quaternion.Lerp(transform.rotation, point.rotation, Time.time * 0.1f);
    
    • 1
    • 2

    11. Quaternion.Slerp

    //插值旋转,从a到b旋转,让a到b复制rotation(参数3不能为负)
    transform.rotation = Quaternion.Slerp(transform.rotation, point.rotation, Time.time * 0.1f);
    
    • 1
    • 2

    12.Quaternion.RotateTowards

     //转向point,(参数3能为负)
    transform.rotation=Quaternion.RotateTowards(transform.rotation,point.rotation,-Time.time*0.1f);
    
    • 1
    • 2

    13.Quaternion.Inverse

    //求反,将cube的rotation变成point的rotation相反数
    transform.rotation = Quaternion.Inverse(point.rotation);
    
    • 1
    • 2

    项目资源

    传送门
    提取码:hn60
    失效的话可私信发送

  • 相关阅读:
    Python Tkinter Multiple Windows 教程
    JavaScript基础: 异步
    全国各省产业结构协调-高级化、合理化指标(2000-2020年)
    Python基于Excel数据加以反距离加权空间插值并掩膜图层
    安徽首届道医传承十八绝技发布会在合肥成功举办
    Servlet运行原理_API详解_请求响应构造进阶之路(Servlet_2)
    信息安全:网络物理隔离技术原理与应用.
    Leftpad事件 我们是不是早已忘记该如何好好地编程?
    前端飞机大战小游戏
    7.手机的工作频段
  • 原文地址:https://blog.csdn.net/m0_48554728/article/details/127868618