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
Параметры
Возвращаемое значение
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 | Текущие остановки анимации и изменения состояния на инерцию с модификаторами инерции, вычисляемыми с использованием запрошенной скорости в качестве начальной скорости |