赞
踩
Vector2类
Vector2类是Unity中用来存储二维向量或二维点坐标的结构体类型
介绍Vector2类的实例方法、静态方法以及运算符
A、Vector2类实例方法
1、Normalize:单位化Vector2实例
public void Normalize();
此方法用来单位化向量,改变了原始向量,无返回值
实例属性normalized与此方法功能相同,但使用属性normalized来单位化向量时,不改变原始向量,且有返回值
B、Vector2类静态方法
1、Angle:两个向量夹角
public static float Angle(Vector2 from, Vector2 to);
其中参数from为起始向量,参数to为结束向量
此方法用于返回两个Vector2实例的夹角,单位为角度,返回值的取值范围为[0,180],并且当from和to当中至少有一个向量为Vector2.zero的时候返回值为90
2、ClampMagnitude:向量长度
public static Vector2 ClampMagnitude(Vector2 vector, float maxLength);
此方法用于返回向量的长度,且最大不超过maxLength
设:
Vector2 A=new Vector2( ax , ay );
float b=maxL;
Vector2 C=Vector2.ClampMagnitude( A , b);
则:
C.x=ax*K;
C.y=ay*K;
其中,K=|b/(ax^2+ay^2)^1/2|>1?1:b/(ax^2+ay^2)^1/2
当A为Vector2.zero时,返回值为二维零向量
此方法功能类似一个钟摆的摆动,|ax|代表沿着x轴的最大摆幅,|ay|代表沿着y轴的最大摆幅,而b值则代表着摆动的幅度
3、Lerp:向量插值
public static Vector2 Lerp(Vector2 from, Vector2 to, float t );
其中参数from为插值的起始向量,参数to为插值的结束向量,参数t为插值系数
此方法用于求参数from到参数to的插值向量,其中插值系数的有效值为[0,1]
Vector2 v=Vector2.Lerp(new Vector2(a,b), new Vector2(c,d), e )
v.x=a*(1-t)+c*t
v.y=b*(1-t)+d*t
4、MoveTowards:向量插值
public static Vector2 MoveTowards(Vector2 current, Vector2 target, float maxDistanceDelta);
其中参数current为移动起始点坐标,参数target为移动目标点,参数maxDistanceDelta为移动的参考系数
此方法用于返回两个向量的插值,且最大插值不超过maxDistanceDelta
Vector2 C=Vector2.MoveTowards(A, B, sp);
C=A+k*d=(ax+K(bx-ax), ay+k*(by-ay));
K=sp/((dx^2+dy^2))^1/2>1?1:sp/((dx^2+dy^2))^1/2
MoveTowards和Lerp方法的功能类似,MoveTowards要比Lerp的插值次数多,视觉效果上也更平滑,但计算更消耗时间
5、Scale:向量放缩
public static Vector2 Scale(Vector2 a, Vector2 b);
此方法用于返回向量a按向量b进行的放缩后的值,即向量a和向量b的乘积
C、Vector2类运算符
1、operator == (lhs:Vector2,rhs:Vector2)
用于判断两个向量是否相等
不仅当lhs和rhs的分量值都相同时返回true,而且当lhs和rhs的各个分量值虽然不同但足够接近时也会返回true
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。