Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public static Vector3 Slerp(Vector3 a, Vector3 b, float t);

Описание

Сферическая интерполяция между двумя векторами.

Интерполирует между a и b на величину t. Разница между этим и линейной интерполяцией (также известной как «lerp») заключается в том, что векторы рассматриваются как направления, а не как точки в пространстве. Направление возвращаемого вектора интерполируется по углу, а его величина интерполируется между величинами from и to.

Параметр t ограничен диапазоном [0, 1].

// Анимирует положение в дуге между восходом и закатом. using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform sunrise; public Transform sunset; // Time to move from sunrise to sunset position, in seconds. public float journeyTime = 1.0f; // The time at which the animation started. private float startTime; void Start() { // Note the time at the start of the animation. startTime = Time.time; } void Update() { // The center of the arc Vector3 center = (sunrise.position + sunset.position) * 0.5F; // move the center a bit downwards to make the arc vertical center -= new Vector3(0, 1, 0); // Interpolate over the arc relative to center Vector3 riseRelCenter = sunrise.position - center; Vector3 setRelCenter = sunset.position - center; // The fraction of the animation that has happened so far is // equal to the elapsed time divided by the desired time for // the total journey. float fracComplete = (Time.time - startTime) / journeyTime; transform.position = Vector3.Slerp(riseRelCenter, setRelCenter, fracComplete); transform.position += center; } }

Смотрите так же: Lerp, SlerpUnclamped.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3