Поделиться через


InteractionTracker.TryUpdatePositionWithAdditionalVelocity(Vector3) Метод

Определение

Пытается обновить позицию InteractionTracker путем добавления скорости.

Метод TryUpdatePositionWithAdditionalVelocity добавляет входной Vector3, представляющий дополнительную скорость к текущей скорости InteractionTracker. В результате, так как скорость InteractionTracker теперь изменилась, целевая позиция отдыха для InteractionTracker теперь меняется. TryUpdatePositionWithAdditionalVelocity можно вызвать из состояний Idle, Инерция или CustomAnimation. Это приведет к добавлению или обновлению скорости InteractionTracker и переходу в состояние Инерция.

public:
 virtual int TryUpdatePositionWithAdditionalVelocity(float3 velocityInPixelsPerSecond) = TryUpdatePositionWithAdditionalVelocity;
int TryUpdatePositionWithAdditionalVelocity(float3 const& velocityInPixelsPerSecond);
public int TryUpdatePositionWithAdditionalVelocity(Vector3 velocityInPixelsPerSecond);
function tryUpdatePositionWithAdditionalVelocity(velocityInPixelsPerSecond)
Public Function TryUpdatePositionWithAdditionalVelocity (velocityInPixelsPerSecond As Vector3) As Integer

Параметры

velocityInPixelsPerSecond
Vector3 Vector3

float3

Скорость, добавляемая в пикселях в секунду.

Возвращаемое значение

Int32

int

Возвращает идентификатор запроса. При переходе состояния запрос, вызваввший изменение состояния, будет включен в аргументы . Эти идентификаторы будут начинаться с 1 и увеличиваться с каждым вызовом try в течение жизненного цикла приложения.

Примеры

// Listen for the InertiaStateEntered event
public void InertiaStateEntered(InteractionTracker sender, 	InteractionTrackerInertiaStateEnteredArgs args)
{
  // Adding velocity to InteractionTracker if condition met
  if (_extraVelocityNeeded)
  {
    // Only adding velocity in the Y direction
    _tracker.TryUpdatePositionWithAdditionalVelocity(new Vector3(0.0f, 50.0f,	0.0f));
  }
}

Комментарии

Если InteractionTracker находится в состоянии взаимодействия (пользователь активно управляет) и вызывается TryUpdatePositionWithAdditionalVelocity, система проигнорирует этот запрос . При этом возникает событие, которое можно прослушивать. При отправке из одного из других состояний прослушайте событие, сработавшее для InertiaStateEntered, и проверка свойство RequestId, определяющее, какой запрос вызвал обратный вызов. В таблице ниже приведена сводка ожидаемого поведения при вызове этого метода в определенном состоянии:

Текущее состояниеРезультат
БездействиеИзменения состояния в модификаторах инерции и инерции оцениваются с запрошенной скоростью в качестве начальной скорости.
ВзаимодействиеЗапрос игнорируется
ИнерцияИнерция перезапускается (состояние возвращается в инерцию), а модификаторы инерции оцениваются с запрошенной скоростью, добавленной к текущей скорости.
CustomAnimationТекущие остановки анимации и изменения состояния на инерцию с модификаторами инерции, вычисляемыми с использованием запрошенной скорости в качестве начальной скорости

Применяется к