Unity中向量有关的方法
来源:互联网 发布:电脑游戏多开器 端口 编辑:程序博客网 时间:2024/06/08 11:33
以下是在Unity5.x 3D 游戏开发技术详解与典型案例这本书上看到有关向量的一些方法,但是并没有一一测试,仅仅测试了几个常用的向量用法,记录下来以备以后用到。
Lerp -两向量之间的线性插值
Slerp -在两个向量之间进行球形插值
OrthoNormalize -使向量标准化并且彼此相互垂直
MoveTowards -从当前位置移向目标
RotateTowards -当前向量转向目标
SmoothDamp -随着回见的推移,逐渐改变一个向量朝向预期的目标
Scale -两个适量组件对应相乘
Cross -两个向量的交叉乘积
Reflect -沿着法线反射向量
Dot -两个向量的点乘
Project -投影一个向量到另一个向量
Angle -返回两个向量的夹角
Distance -返回两点之间的距离
ClampMagnitude -返回向量的长度,最大不超过maxLength所示的长度
Min -返回两个向量中长度较小的一个
Max -返回两个向量中长度较大的一个
+ -两个向量相加
- -两个向量相减
== -两个向量是否相等
!= -两个向量是否不相等
下面是常见的几个使用方式
Vector3 v1 = new Vector3(-1, 0, 0);Vector3 v2 = new Vector3(1, 1, 0);angle = Vector3.Angle(v1, v2); //向量夹角返回值是角度制distance = Vector3.Distance(v1, v2); //两点距离var dot = Vector3.Dot(v2, v1); //向量点乘cross = Vector3.Cross(v1, v2); //向量叉乘
在进行向量运算旋转角度等情况下,需要判断两个向量夹角正负的情况,采用了一个本办法,就是数学上的向量计算:向量A(x1,y1),向量B(X2,y2)
result = x1*y2-x2*y1
result 大于零,则A向量到B向量是逆时针
result 小于零,则A向量到B向量是顺时针
参考以下链接:> http://blog.csdn.net/hy3316597/article/details/52732963
部分代码:
var angle = Vector2.Angle(newDeltaVector, oldDeltaVector);if (oldDeltaVector.x * newDeltaVector.y - newDeltaVector.x * oldDeltaVector.y < 0){ angle = -angle;}//这里的angle是前后两个向量夹角的差值,用来作为物体角度的增量
- Unity中向量有关的方法
- Unity中使用的向量
- unity在shader中获取当前摄像机的方向向量
- Unity Shader中有关设置Material的优化
- 在unity中有关VRTK的射线使用
- Mathematica 有关向量与矩阵的函数
- Unity计算两点之间的距离或者向量的长度常用方法
- 有关hibernate中update方法的问题
- Java中有关方法的简单总结
- webView 中WebViewClient有关方法的作用
- contentProvider中有关query方法的使用
- java中有关构造方法的知识
- 有关java中jdk的安装方法
- 有关Javascript中数组的push方法
- Android ViewGroup中有关测量的方法
- Unity 中的向量的 相关使用1
- Unity比较两个向量的长度
- Unity Shader:向量在世界空间与切线空间中变换的相关数学原理详解
- Android插件化快速入门与实例解析(VirtualApk)
- 做一枚优秀的攻城狮,还需要学会UML。
- 第0课 VM
- HTML5基础入门学习心得体会
- java事务全解析(二)--失败的案例
- Unity中向量有关的方法
- 【Hibernate】(四)基础映射
- windows连接Mysql 出错
- 实现一个简单的计时器
- jQuery获取全选反向,以及获取全选的值
- poj3608Bridge Across Islands(旋转卡壳)
- 级联If -else if -else 语句
- JS-数组遍历
- NFS服务