public class AngleTest : MonoBehaviour {

    public GameObject cube;              //主要的物体
public GameObject radCube; //判断此物体与主要物体位置 Vector3 radCubeToCube; //红色方块到这个方块的向量 Vector3 crossOfcube; //存放叉乘的结果 float angleCross; //存放叉乘角度
float angleDot; //存放点乘角度 // Use this for initialization
void Start () { } // Update is called once per frame
void Update () {
radCubeToCube = radCube.transform.position - cube.transform.position; crossOfcube = Vector3.Cross(cube.transform.forward.normalized, radCubeToCube.normalized); //一定要转换成单位向量 angleCross = Mathf.Asin(Vector3.Distance(Vector3.zero,crossOfcube)) * Mathf.Rad2Deg; //网上查的,用来算叉乘角度
Debug.Log("点乘夹角" + angleCross);
Debug.Log("左右判断" + crossOfcube.y);
Debug.Log("上下判断" + crossOfcube.x); angleDot = Mathf.Acos(Vector3.Dot(radCubeToCube.normalized, cube.transform.forward.normalized)) * Mathf.Rad2Deg;
//这个分开看,Vector3.Dot()是为了计算两个向量得到的cos值,Mathf.Acos是反三角函数,转换为弧度,Mathf.Rad2De是把弧度换成角度 Debug.Log("V3.Dot=" + angleDot);
}
}

我个人觉得angleCross这个数据应该用不上, 我测试了一下,角度都是90度以内,也没法得到位置信息,所以我没有研究得到这个数据的代码。

crossOfcube.y 得到这个这个值就很有用,不管数据是多少,但是有正负,正方向就是方块的左边,负方向就是方块的右边。

crossOfcube.x 这个也有用,也是通过正负判断方位,如果是正,则在下方,负数则在上方。

angleDot 得到的这个角度也挺有用的,能够判断方位,可以结合crossOfcube得到的判断在自己的左右多少度方位。

Unity的学习笔记(向量点乘和叉乘)的更多相关文章

  1. Unity Shader学习笔记-1

    本篇文章是对Unity Shader入门精要的学习笔记,插图大部分来自冯乐乐女神的github 如果有什么说的不正确的请批评指正 目录 渲染流水线 流程图 Shader作用 屏幕映射 三角形遍历 两大 ...

  2. unity 3D 学习笔记

    1.父对象的初始位置设,即刚开始的空对象的根节点位置应当设置成(0,0,0) 这样设置可以避免以后出现奇怪的坐标. GameObject实际上就是一些组件的容器. unity 使用公用变量原因是,在U ...

  3. 从0开始学习Unity的学习笔记(I 界面学习和简单模型拼装)

    先给一个大致今天学习的图,然后后面是细节 1.下载Unity :官网下载需要版本 2.Unity安装:一定不要有中文路径:一台电脑可以安装不同版本的Unity,但是要安装在不同的文件夹下: 3. 新建 ...

  4. 【Unity Shader学习笔记】Unity基础纹理-法线贴图

    1 高度纹理 使用一张纹理改变物体表面法线,为模型提供更多细节. 有两种主要方法: 1.高度映射:使用一张高度纹理(height map)来模拟表面位移(displacement).得到一个修改后的法 ...

  5. 【Unity Shader学习笔记】Unity基础纹理-单张纹理

    1 单张纹理 1.1 纹理 使用纹理映射(Texture Mapping)技术,我们把一张图片逐纹素(Texel)地控制模型的颜色. 美术人员建模时,会在建模软件中利用纹理展开技术把纹理映射坐标(Te ...

  6. 【Unity Shader学习笔记】Unity光照基础-高光反射

    1.原理 1.1.Phong模型 计算高光反射需要表面法线.视角方向.光源方向.反射方向等. 在这四个矢量中,我们实际上只需要知道其中3个矢量即可,而第4个矢量(反射方向r)可以通过其他信息计算得到: ...

  7. 【Unity Shader学习笔记】Unity光照基础-漫反射光照

    本代码只适用于平行光. 1.逐顶点漫反射光照 1.1漫反射光照原理 1.2代码实现 在Properties语义块中声明一个漫反射颜色属性 Properties { //漫反射参数,用于调整漫反射效果 ...

  8. Unity sqlite学习笔记一

    1.SQLITE的常识 SQLite是一个开源免费的数据库,一般用于嵌入系统或者小规模的应用软件开发中,你可以像使用Access一样使用它. sqlite的主要优点:零配置(Zero Configur ...

  9. Unity Shader学习笔记 - 用UV动画实现沙滩上的泡沫

    这个泡沫效果来自远古时代的Unity官方海岛Demo, 原效果直接复制3个材质球在js脚本中做UV动画偏移,这里尝试在shader中做动画并且一个pass中完成: // Upgrade NOTE: r ...

随机推荐

  1. 最近在弄ionic3的时候遇到的一些问题(遇到就更新)

    问题一(install提示errno -4048 和管理员权限) npm install npm ERR! code EPERM npm ERR! errno - npm ERR! syscall u ...

  2. 图解CRM(客户关系管理)全流程

    https://blog.csdn.net/lylmwt/article/details/84921432

  3. Linux+Apache环境下安装SSL证书

    一.安装证书 (温馨提示:安装证书前请先备份您需要修改的服务器配置文件) 1.确认证书文件及证书路径.  例证书文件为:zzidc.com.jks,放置目录为Tomcat的conf目录下.  2.配置 ...

  4. 2019 SDN第四次上机作业

    作业博客链接:http://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/10017 1. 解压安装OpenDayLight控制器(本次实验统一使用Be ...

  5. 安装与配置HSDIS与JITWatch

    本作者的系统: 操作系统版本及位数可通过uname -a命令查看,如下: Linux ubuntu 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul ...

  6. Linux下WebLogic的启动、停止和后台运行的方法

    Linux下WebLogic的启动.停止和后台运行的方法 进入目录:/home/weblogic/user_projects/domains/base_domain/bin 查看目录下的命令,如图: ...

  7. 2015-2016-2《Java程序设计》团队博客4

    一.类结构图 这一周将所有的类都进行了实现,以下是这周实现的类图:         二.项目进展 目前已经将所有代码都编写完成,正在进行整体测试.虽然期间遇到了一些问题,但我们一起进行了讨论,并查找了 ...

  8. javassist使用全解析

    Java 字节码以二进制的形式存储在 .class 文件中,每一个 .class 文件包含一个 Java 类或接口.Javaassist 就是一个用来 处理 Java 字节码的类库.它可以在一个已经编 ...

  9. 关于Objective-C新增的__kindof关键字

    Objective-C随着Xcode 7的升级带来了许多新特性,当然此次更新最最大的就是引入了Objective-C的轻量级泛型,确切地说是Objective-C类的轻量级泛型.除此之外,还有一个小特 ...

  10. Qt开发经验小技巧21-30

    如果出现Z-order assignment: is not a valid widget.错误提示,用记事本打开对应的ui文件,找到为空的地方,删除即可. 善于利用QComboBox的addItem ...