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

举报
呆呆敲代码的小Y 发表于 2021/09/27 18:47:48 2021/09/27
【摘要】 Unity 小科普老规矩,先介绍一下 Unity 的科普小知识:Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Un...

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);

打印结果如下:
在这里插入图片描述


请添加图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。