MathfUnity Mathf 数学运算与 Vector3.Lerp 函数在游戏开发中的应用

MathfUnity Mathf 数学运算与 Vector3.Lerp 函数在游戏开发中的应用

Unity Mathf 数学运算(C#)

*Vector3.Lerp

第二行使用 Vector3.Lerp 来确定僵尸在其当前位置和目标位置之间的路径上的新位置。Lerp 是一种方便的方法,它基于第三个值在两个值之间进行插值。Lerp 将第三个值限制在 0 和 1 之间,并将其解释为两点之间路径上的分数。这意味着值为 0 将返回当前位置,值为 1 将返回目标,值为 0.5 将返回它们之间的中点。

Vector3.Lerp 插值

静态函数Lerp(来自:Vector3,到:Vector3,t:float):Vector3

描述

开发游戏软件需要学什么专业_游戏开发学习_游戏开发自学

在两个向量之间进行线性插值。

两个向量之间的线性插值。

从 到 插入量 t。

根据数字 t 在 from 和 to 之间进行插值。

t 介于 [0...1] 之间。当 t = 0 时游戏开发学习,返回 from。当 t = 1 时,返回 to。当 t = 0.5 时,返回 from 和 to 的平均值。

t 介于 [0...1] 之间,当 t = 0 时,返回 from游戏开发素材,当 t = 1 时,返回 to。当 t = 0.5 时,返回 from 和 to 的平均值。

// Animates the position to move from start to end within one second
//在1秒时间动画位置移动从from开始到to结束。
var start : Transform;
var end : Transform;
function Update () {
	transform.position = Vector3.Lerp(start.position, end.position, Time.time);
}

另一个例子:

// Follows the target position like with a spring
//像弹簧一样跟随目标物体
var target : Transform;
var smooth = 5.0;
function Update () {
	transform.position = Vector3.Lerp (
	transform.position, target.position,
	Time.deltaTime * smooth);
}

//---------------------------

您将在计算中使用转弯速度来控制僵尸重新调整到新方向的速度。

Unity 内部使用四元数来表示旋转。如果您对数学细节感兴趣,请查看此信息。然后,在您清理完头脑爆炸的混乱之后,您就可以放心了,因为在使用 2D 时您真的不需要知道任何有关四元数的知识。

这是因为 Quaternion.Euler 方法允许您从欧拉角创建四元数对象。欧拉角是大多数人习惯的角,由单独的 x、y 和 z 旋转组成。虽然由于万向节锁定等问题游戏开发素材,它们不适合 3D 工作,但欧拉角非常适合 2D 游戏,因为您可能只想围绕 z 轴旋转。

//---------------------------

四元数。

因此使用四元数

四大要素的优势

非常容易插入

完全消除万向节锁(或无奇点)

虽然最后四个元素还是会还原成一个矩阵,但是四个元素相乘时的效率要比矩阵高很多

游戏开发自学_游戏开发学习_开发游戏软件需要学什么专业

Untiy3d详细介绍

//---------------------------

万向锁

万向节锁问题

您可以在 youtube 上寻找该视频。

欧拉角万向节死锁是这样的:我们依次绕物体坐标系的X轴、Y轴、Z轴旋转,当Y轴旋转90度后游戏开发学习,Z轴会指向原来的X轴。这样,我们其实只是绕X轴和Y轴旋转,第三轴的自由度就丢失了!(值得指出的是,我们在描述时使用的是世界坐标系的x、y、z轴,但用的是绕物体的旋转)

文章来源:https://blog.csdn.net/weixin_34234721/article/details/94145161