Unity3D 灵巧小知识点 ☀️ | 求解 两个向量的夹角度数

Posted 呆呆敲代码的小Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D 灵巧小知识点 ☀️ | 求解 两个向量的夹角度数相关的知识,希望对你有一定的参考价值。

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏

Unity小知识点学习

求解 两个向量的夹角度数

在unity中经常会遇到求向量夹角的地方

比如:在已知两个向量后,求这两个向量之间的夹角度数

直接上两种最简单的求夹角的方法

代码1:

        //向量1
        Vector3 d1 = transform.forward;
        //向量2
        Vector3 d2 = new Vector3(0, 5, 0);
        //求夹角
        float angle = Vector3.Angle(d1, d2);
        //打印结果
        Debug.Log("向量夹角:" + angle);

代码2:

        //向量1
        Vector3 d1 = transform.forward;
        //向量2
        Vector3 d2 = new Vector3(0, 5, 0);
        
        //d2.normalized向量归一化
        float dot = Vector3.Dot(d1, d2.normalized);     
        //求夹角
        float angle1 = Mathf.Acos(dot) * Mathf.Rad2Deg;
        //打印结果
        Debug.Log("向量夹角:" + angle);

在顺便说一下 求两个向量的法线向量 的代码

        Vector3 d1 = transform.forward;
        Vector3 d2 = new Vector3(0, 5, 0);
        Vector3 cross = Vector3.Cross(d1, d2.normalized);
        Debug.Log("法线向量:"+cross);

打印结果如下:


以上是关于Unity3D 灵巧小知识点 ☀️ | 求解 两个向量的夹角度数的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D 灵巧小知识点☀️ | Unity脚本生命周期

Unity3D 灵巧小知识点 ☀️ | Unity退出游戏代码

Unity3D 灵巧小知识点 ☀️ | 让Unity支持后台运行

Unity3D 灵巧小知识点 ☀️ | Unity脚本中获取 本地时间

Unity3D 灵巧小知识点 ☀️ | GetType和typeof的使用

Unity3D 灵巧小知识点☀️ | Unity 中 使用代码切换天空盒