您当前的位置: 首页 >  unity

十幺卜入

暂无认证

  • 2浏览

    0关注

    119博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity3d C#实现获取两个对象的夹角值(0--360)含源码

十幺卜入 发布时间:2021-04-14 14:43:59 ,浏览量:2

Unity3d C#实现获取两个对象的夹角值(0--360)
  • 前言
  • 直观效果
  • 实现过程
    • 搭建场景
      • 对象
      • 划线对象
    • 编码
      • 获取夹角
      • 转换夹角值
      • 显示夹角
      • 绘制夹角
  • 项目源码

前言

项目中经常会遇到两个对象的夹角计算,主要还是vector3.Angle的计算,有个问题是这个返回只在180之下。通过一番查阅资料这里将整理的demo分享一下。

直观效果

在这里插入图片描述

实现过程 搭建场景

在这里插入图片描述

对象

新建了两个对象,一个正方体和一个球体,主要就是计算正方体前向和正方体到球体方向的夹角。

TextMesh用于显示计算的夹角值。

划线对象

为了更直观的看到夹角,用两根线来连接出夹角。

编码 获取夹角

求出两个向量的角度

 float angle = Vector3.Angle(from, to);     

from正方体的前向 to 正方体到球体的向量

转换夹角值
 叉乘求法线向量
        Vector3 nordir = Vector3.Cross(from, to);     
 点乘求出相似度
        float dot = Vector3.Dot(nordir, Vector3.down);  

转换值

 if (dot             
关注
打赏
1663314737
查看更多评论
0.1011s