《Unity_API解析》 第十三、四章 Vector2类、Vector3类

Vector2类实例方法

Normalize方法:单位化Vector2实例

public void Normalize();

此方法用来单位单位化向量,即将Vector2实例进行单位化处理。此方法改变了原始向量,无返回值。实例属性normalized与此方法功能相同,但使用属性normalized来单位化向量时,不改变原始向量值,且有返回值。

Vector2类静态方法

Angle方法:两向量夹角

public static float Angle(Vector2 from, Vector2 to);

参数from为起始向量,to为结束向量。

此方法用于返回两个Vector2实例的夹角,单位为角度,返回值的取值范围为[0,180],并且当from和to中至少有一个向量为Vector2.zero的时候返回值为90。

ClampMagnitude方法:向量长度

public static Vector2 ClampMagnitude(Vector2 vector, float maxLength);

此方法用于返回向量的长度,且最大不超过maxLength。

Lerp方法:向量差值

public static Vector2 Lerp(Vector from, Vector2 to, float t);

参数from为插值的起始向量,参数to为插值的结束向量,参数t为插值系数。

MoveTowards方法:向量差值

public static Vector2 MoveTowards(Vector2 current, Vector2 target, float maxDistanceDelta);

参数current为移动起始点坐标,参数target为移动目标点,参数maxDistanceDelta为移动的参考系数。

Scale方法:向量放缩

public static Vector2 Scale(Vector2 a, Vector2 b);

此方法用于返回向量a按向量b进行放缩后的值,即向量a,b的乘积。

Vector3类实例属性

normalized属性:单位化向量

public Vector3 normalized{get;}

此属性用来获取Vector3实例的单位向量,即返回向量的方向与原向量方向相同,而模长变为1.

sqrMagnitude属性:模长平方

public float sqrMagnitude{get;}

此属性用于返回Vector3实例模长的平方值,即三个分量平方的和。

Vector3类实例方法

Scale方法:向量放缩

public void Scale(Vector3 scale);

此方法可以对Vector3实例按参考向量scale进行放缩,即分量依次相乘。

Vector3类静态方法

Angle方法:两向量夹角

public static float Angle(Vector3 from, Vector3 to);

此方法用于返回向量from和to的夹角,单位为角度,返回值范围为[0,180],且当from和to中至少有一个为Vector3.zero时,方法返回值为90。

ClampMagnitude方法:向量长度

public static Vector3 ClampMagnitude(Vector3 vector, float maxLength);

此方法用于返回向量vector的一个同方向向量,模长受maxLength限制。

Cross方法:向量叉乘

public static Vector3 Cross(Vector3 Ihs,Vecxtor3 rhs);

Dot方法:向量点乘

public static float Dot(Vector3 Ihs, Vector3 rhs);

Lerp方法:向量差值

public static Vector3 Lerp(Vector3 from, Vector3 to, float t);

参数from为差值起始点坐标,参数to为插值结束点坐标,参数t为插值系数。

MoveTowards方法:向量差值

public static Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta);

此方法用于返回一个从参数current到参数target的差值向量。

OrthoNormalize方法:两个坐标轴的正交化

public static void OrthoNormalize(ref Vector3 normal, ref Vector3 tangent);

此方法用于对向量normal进行单位化处理,并对tangent进行正交化处理。

即normal变成单位向量,tangent变成与该单位向量垂直的模长为1的向量,且这些向量处于同一平面。

OrthoNormalize方法:三个坐标轴的正交化

public static void OrthoNormalize(ref Vector3 normal, ref Vector3 tangent, ref Vector3 binormal);

此方法用于对向量normal进行单位化处理,并对向量tangent和binormal进行正交化处理,于上面两个参数的重载相同,binormal垂直于normal和tangent组成的平面。

Project方法:投影向量

public static Vector3 Project(Vector3 vector, Vector3 onNormal);

此方法用于返回向量vector在向量onNormal上的投影向量。

Reflect方法:反射向量

public static Vector3 Reflect(Vector3 inDirection, Vector3 inNormal);

参数inDirection为入射向量,inNormal为镜面向量

参数inNormal向量必须为单位向量,否则入射角和反射角不相等。

当inNormal取反时,反射向量不受影响。

RotateTowards方法:球形插值

public static Vector3 RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta)

参数current为起始点坐标,参数target为目标点坐标,参数maxRadiansDelta为角度旋转系数,参数maxMagnitudeDelta为模长系数。

Scale方法:向量放缩

public static Vector3 Scale(Vector3 a, Vector3 b);

此方法返回向量a和b的乘积。

Slerp方法:球形差值

public static Vector3 Slerp(Vector3 from, Vector3 to, float t);

参数from为插值起始点坐标,参数to为插值结束点坐标,参数t为插值系数。

此方法用于返回从参数from点到参数to点的球形差值向量。

SmoothDamp方法:阻尼运动

public static Vector3 SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime);

public static Vector3 SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime, float maxSpeed);

public static Vector3 SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime, float maxSpeed, float maxSpeed);

其中参数current为起点坐标,参数target为终点坐标,参数currentVelocity为当前帧移动向量,参数smoothTime为接近目标时的阻尼强度,参数maxSpeed为最大移动速度,默认值为无穷大,参数deltaTime为控制当前帧实际移动的距离,即为maxSpeed*deltaTime,默认值为Time.deltaTime。

时间: 2024-10-12 12:41:10

《Unity_API解析》 第十三、四章 Vector2类、Vector3类的相关文章

《Unity_API解析》 第十一章 Time类

Time类静态属性 realtimeSinceStartup属性:程序运行实时时间 public static float realtimeSinceStartup(){get;} 此属性用于返回从游戏启动到现在一运行的实时时间(只读),以秒为单位.此属性通常可用Time.time代替使用,但realtimeSinceStartup的返回值不收timeScale属性变化的影响. smoothDeltaTime属性:平滑时间间隔 public static float smoothDeltaTim

《Unity_API解析》 第三章 GameObject类

GameObject类实例属性 activeSelf属性:GameObject的Active标识 public bool activeSelf{ get; } 功能说明 此属性用来返回GameObject对象的Active标识状态,即物体的活跃状态. 注意:此属性与activeInHierarchy的区别.activeInHierarchy属性的功能是返回GameObject实例在程序运行时的激活状态,只有当GameObject实例的状态被激活时才会返回true.而且它会受其父物体对象激活状态的

SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-010-Introduction为类增加新方法

一. 1.Introduction的作用是给类动态的增加方法 When Spring discovers a bean annotated with @Aspect , it will automatically create a proxy that delegates calls to either the proxied bean or to the introduction implementation, depending on whether the method called be

CSS3秘笈复习:十三章&十四章&十五章&十六章&十七章

第十三章 1.在使用浮动时,源代码的顺序非常重要.浮动元素的HTML必须处在要包围它的元素的HTML之前. 2.清楚浮动: (1).在外围div的底部添加一个清除元素:clear属性可以防止元素包围浮动元素.关键字:left.right或both. (2).浮动外围元素:让包含浮动元素的<div>也浮动.选择这种方法一定要在浮动容器后面的任何元素中添加一个clear属性,确保浮动元素落到容器的下方. (3).利用overflow : hidden.另一种常见的方法是在外围的样式中添加以下属性:

第十三章 进程、线程类的实现

                                        第十三章   进程.线程类的实现         多线程是指在一个进程内可以同时运行多个任务,每个任务由一个单独的线程来完成.线程是进程运行的基本单位,一个进程中可以同时运行多个线程.如果程序被设置为多线程方式,可以提高程序运行的效率和处理速度. 多个线程共用一个进程的资源:进程的调度.切换是在10ms的"时钟滴答"定时中断程序里进行.如果一个线程获得CPU,那么在下一个Tick到来前:是不可能被切换出去的

中国游戏辅助写手回忆录[十三~十四章]

这是分开章节的版本,追更阅读的朋友可以从这个地址下载标题所示的更新章节 没有阅读的过朋友还请请下载置顶的完整版,从头阅读. 十三章下载地址:http://pan.baidu.com/s/1G11RC 十四章下载地址:http://pan.baidu.com/s/1kTMoSEb

第四章 类与对象

一.面对对象编程的三个特性 封装性:经数据和对数据的操作封装在一起.通过抽象,从实例中抽取共同性质形成一般概念,例如类. 继承:子类可继承父类的属性和行为,继承父类所具有的数据和数据上的操作,同时增添子类独有的数据和数据上的操作. 多态:一是操作名称的多态,多个操作具有相同名字,这些操作所接受的消息必须不同:二是和继承有关的多态,同意操作被不同对象调用时产生不同行为. 二.类声明 类是JAVA程序的基本要素,JAVA应用程序有若干类组成,类声明的变量为对象变量. 类的定义两部分:类声明.类体 c

Java核心技术第四章----对象与类重难点总结

一.类之间的关系 类和类之间的关系,耦合度从高到低: is -a.继承.实现 has-a.组合.聚合.关联 user-a.依赖. 要求是:高内聚.低耦合. 继承("is-a") 继承(Inheritance),即"is-a"关系,是一种用于表示特殊与一般关系的.表示类与类(或者接口与接口)之间的父子关系.一般而言,如果类A扩展类B,类A不但包含从类B继承的方法,还会拥有一些额外的功能.在JAVA中,用关键字extends表示继承关系 实现(Implementatio

Python基础教程(第十四章 网络编程)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5538341.html______ Created on Marlowes 本章将会给读者展示一些例子,这些例子会使用多种Python的方法编写一个将网络(比如因特网)作为重要组成部分的程序.Python是一个很强大的网络编程工具,这么说有很多原因,首先,Python内有很多针对常见网络协议的库,在库顶部可以获得抽象层,这样就可以