【Unity】Vector3的方法

news/2025/3/17 22:43:19/文章来源:https://www.cnblogs.com/NiuFacai/p/18232795
属性和方法 作用
normalized 使用Vector3.normalized的一个常见场景是在物理模拟中,比如计算速度向量或在射线投射(Raycasting)中确定射线的方向。
Lerp Vector3.Lerp在Unity中非常常用,尤其是在动画和游戏逻辑中,用于平滑地过渡从一个状态到另一个状态,例如角色移动、颜色渐变、摄像机平滑跟踪等。
Dot Vector3.Dot在Unity中非常有用,尤其是在需要进行向量运算的场景中,如物理计算、动画和游戏逻辑等。
Cross Vector3.Cross在Unity中非常有用,尤其是在需要进行空间向量运算的场景中,如3D图形渲染、物理引擎中的旋转和力矩计算等。

normalized 归一化##

Kimi:
Unity中的Vector3是一个表示三维空间中点或向量的类,它具有三个分量:x、y和z。Vector3.normalized是一个属性,当对一个Vector3实例调用这个属性时,会返回一个新的Vector3对象,它是原始向量的归一化版本。

归一化向量是指一个向量的长度(或大小)被缩放到1的向量,同时保持原有的方向。在数学上,一个向量v的归一化版本可以通过下面的公式计算得到:

其中,

是向量v的长度,计算公式为:

在Unity中,Vector3.normalized属性会自动进行这些计算,并返回一个新的Vector3对象,其长度为1,方向与原始向量相同。如果原始向量的长度为0,则normalized属性会抛出一个异常,因为无法对零向量进行归一化。

使用Vector3.normalized的一个常见场景是在物理模拟中,比如计算速度向量或在射线投射(Raycasting)中确定射线的方向。

下面是一个Unity中使用Vector3.normalized的示例代码:

using UnityEngine;public class ExampleScript : MonoBehaviour
{void Start(){Vector3 originalVector = new Vector3(3, 4, 0);Vector3 normalizedVector = originalVector.normalized;Debug.Log("Original Vector: " + originalVector);Debug.Log("Normalized Vector: " + normalizedVector);}
}

在这个示例中,我们创建了一个原始向量originalVector,然后通过调用normalized属性获取了它的归一化版本normalizedVector,并在控制台中打印了这两个向量。

Lerp

在Unity中,Vector3.Lerp(线性插值)是一个用于在两个向量之间进行插值的静态方法。它根据一个给定的参数t,在两个三维向量a和b之间计算出一个中间向量。t的值通常在0到1之间,其中0表示向量a,1表示向量b,而中间值则表示这两个向量之间的某个点。

函数的原型如下:

public static Vector3 Lerp(Vector3 a, Vector3 b, float t)

a:起始向量。
b:结束向量。
t:插值参数,用于确定插值点的位置。
线性插值的计算公式是:

这里的result是插值后的向量。

使用Vector3.Lerp的一个示例代码如下:


using UnityEngine;public class ExampleScript : MonoBehaviour
{void Start(){Vector3 startVector = new Vector3(1, 0, 0); // 红色向量Vector3 endVector = new Vector3(0, 1, 0);   // 绿色向量float interpolationValue = 0.5f;            // 插值参数,0到1之间Vector3 interpolatedVector = Vector3.Lerp(startVector, endVector, interpolationValue);Debug.Log("Interpolated Vector: " + interpolatedVector);}
}

在这个示例中,我们定义了两个向量startVector和endVector,分别代表红色和绿色。我们设置插值参数interpolationValue为0.5,这意味着我们想要在两个向量之间找到一个中间点。使用Vector3.Lerp函数,我们计算出了插值后的向量interpolatedVector,并在控制台中打印出来。

Vector3.Lerp在Unity中非常常用,尤其是在动画和游戏逻辑中,用于平滑地过渡从一个状态到另一个状态,例如角色移动、颜色渐变、摄像机平滑跟踪等。

Dot 点乘

叉乘

叉积有几个重要的用途:

  1. 计算两个向量的垂直向量:叉积结果向量与原两向量都垂直。
  2. 计算面积:叉积向量的模长等于由原两向量构成的平行四边形的面积。
  3. 在物理中计算力矩和角动量:叉积常用于计算力对物体的转动效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720294.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

perfers-color-scheme 使用简单介绍

perfers-color-scheme 简介 prefers-color-scheme 媒体查询属性用于检测用户操作系统是否使用深色模式。 属性值dark 表示用户操作系统使用深色模式 light 表示用户操作系统使用浅色模式 no-preference 表示用户操作系统没有偏好,或者操作系统不支持该属性示例 @media (prefer…

正则表达式学习(1)——模式

正则表达式用于处理字符和字符串,是一种强大的工具 1. 正则表达式的模式字面值字符:例如字母、数字、空格等,可以直接匹配它们自身。特殊字符:例如点号 .、星号 *、加号 +、问号 ? 等,它们具有特殊的含义和功能。字符类:用方括号 [ ] 包围的字符集合,用于匹配方括号内的…

修改软链接实现提权

在做 vulnhub bottleneck 靶机过程中,看到一个修改软链接实现提权或越权的小技巧,固记录一下 提权成功后,是 www-data 的权限,运行 sudo -l 发现系统中存在clear_logs ,可以让bytevsbyte 免密运行 尝试先把权限提升至 bytevsbyte 再考虑 提root查看 clear_logs 文件属性看…

Python数据类型转换(新)

目录Python数据类型的转换隐式类型转换显式类型转换 Python数据类型的转换 数据类型分为1.隐式类型转换 2.显式类型转换 隐式类型转换在隐式类型转换中,Python会自动将一种数据类型转换为另一种数据类型,不需要认为去干预比如在进行算术运算的时候,较低数据类型(整数)就会转换…

在modelsim中查找指定信号是否有特定值

先选中信号,然后在上方搜索框输入后按回车就可以搜索,搜索框右边分别为搜索上一个和搜索下一个。

Python2 input函数漏洞利用

在 Python2 中,input 函数相当于 eval(raw_input(prompt))如果输入的数据是一个恶意的表达式,存在任意代码执行的风险 实例演示字符串拼接命令执行__import__(os).system(cat /etc/passwd)靶场利用 在 vulnhub bottleneck 靶机中,遇到 input 漏洞利用的情况 # 核心代码forea…

Python3基本语法(新)

目录基本语法输出print()格式化输出标识符import关键字保留字(关键字)注释多行注释1、单引号()2、双引号(""")缩进空行同一行显示多条语句等待用户输入inputimport 与 from...import 基本语法 输出print() print() 是一个让计算机在屏幕上进行输出的指令.它…

Python数据类型(新)

目录数据类型类型查看同时多个变量赋值标准数据类型1.数字(Number)2.字符串3.bool(布尔类型)4.元组元组的运算+ 运算+=运算* 运算元组的删除5.列表(List)查找列表修改列表列表的切片列表是可以修改的列表的追加列表的插入列表的连接列表的删除列表的清空列表的复制6.字典查找字…

[Tools] 使用 Charles 对 Android 应用进行 HTTPS 数据抓包

抓包工具 Charleshttps://www.charlesproxy.com/操作步骤 1. 在电脑上安装 Charles 客户端并进行配置 1.1 设置 Proxy Setting1.2 设置 SSL Proxing Setting1.3 重启 Charles 客户端 2. 在手机上安装 Charles 证书 2.1 将手机与电脑连接到同一 WIFI 网络 2.2 设置手机 WIFI 为…

Tita的OKR:如何开好 OKR 季度回顾会议?

你刚刚度过了一个美好的季度, 你意识到有些人已经接受了OKR,有些人还没有。 有些人很沮丧,因为他们发现每周衡量他们的OKR很困难,其他人则提到,这对他们保持正轨有很大帮助。在这个季度,你学到了很多东西,感觉你取得了一些出色的进展。 但是,你如何确保下一季度的工作更…

算法金 | 一文读懂K均值(K-Means)聚类算法

​大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣]1. 引言 数据分析中聚类算法的作用 在数据分析中,聚类算法用于发现数据集中的固有分组,通过将相似对象聚集在一起来揭示数据的结构和模式。这种方法常用于市场细分、社交…

[Proxy] 使用 Charles 对 Android 应用进行 HTTPS 数据抓包

抓包工具 Charleshttps://www.charlesproxy.com/操作步骤 1. 在电脑上安装 Charles 客户端并进行配置 1.1 设置 Proxy Setting1.2 设置 SSL Proxing Setting1.3 重启下 Charles 客户端 2. 在手机上安装 Charles 证书 2.1 将手机与电脑连接到同一 WIFI 网络 2.2 设置手机 WIFI …