Vector3.Slerp 球形插值


static function Slerp (from : Vector3, to : Vector3, t : float) : Vector3

Description描述

Spherically interpolates between two vectors.

球形插值在两个向量之间。

我感觉叫“弧线插值”更直观一些。

Interpolates from towards to by amount t.  The returned vector's magnitude will be interpolated between magnitudes of from and to.

通过t数值在from和to之间插值。返回的向量的长度将被插值到from到to的长度之间。

t is clamped between [0...1].  See Also: Lerp function.

t的值在[0...1]。

参见:Lerp函数

  • C#

  • JavaScript

using UnityEngine;using System.Collections;public class example : MonoBehaviour {public Transform sunrise;public Transform sunset;void Update() {Vector3 center = sunrise.position + sunset.position * 0.5F;center -= new Vector3(0, 1, 0);Vector3 riseRelCenter = sunrise.position - center;Vector3 setRelCenter = sunset.position - center;transform.position = Vector3.Slerp(riseRelCenter, setRelCenter, Time.time);transform.position += center;}}
// Animates the position in an arc between sunrise and sunset.//在日出和日落之间动画弧线var sunrise : Transform;var sunset : Transform;function Update () {// The center of the arc//弧线的中心var center = (sunrise.position + sunset.position) * 0.5;// move the center a bit downwards to make the arc vertical//向下移动中心,垂直于弧线center -= Vector3(0,1,0);// Interpolate over the arc relative to center//相对于中心在弧线上插值var riseRelCenter = sunrise.position - center;var setRelCenter = sunset.position - center;transform.position = Vector3.Slerp(riseRelCenter, setRelCenter, Time.time);transform.position += center;}


,