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