InteractionTracker.TryUpdateScaleWithAdditionalVelocity Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Пытается обновить масштаб путем добавления указанной скорости.
Метод TryUpdateScaleWithAdditionalVelocity добавляет входной скаляр, представляющий дополнительную скорость, к текущей скорости InteractionTracker , а также перемещает центральную точку на входной объект Vector3. В результате, поскольку скорость InteractionTracker теперь изменилась, целевая позиция масштабирования rest для InteractionTracker теперь меняется. TryUpdateScaleWithAdditionalVelocity можно вызвать из состояний "Бездействие", "Инерция" или CustomAnimation. Это приведет к добавлению или обновлению скорости InteractionTracker и переходу в состояние Инерция.
public:
virtual int TryUpdateScaleWithAdditionalVelocity(float velocityInPercentPerSecond, float3 centerPoint) = TryUpdateScaleWithAdditionalVelocity;
int TryUpdateScaleWithAdditionalVelocity(float const& velocityInPercentPerSecond, float3 const& centerPoint);
public int TryUpdateScaleWithAdditionalVelocity(float velocityInPercentPerSecond, Vector3 centerPoint);
function tryUpdateScaleWithAdditionalVelocity(velocityInPercentPerSecond, centerPoint)
Public Function TryUpdateScaleWithAdditionalVelocity (velocityInPercentPerSecond As Single, centerPoint As Vector3) As Integer
Параметры
- velocityInPercentPerSecond
-
Single
float
Скорость, добавляемая к шкале.
Возвращаемое значение
int
Возвращает идентификатор запроса. При переходе состояния запрос, вызваввший изменение состояния, будет включен в аргументы. Эти идентификаторы начинаются с 1 и увеличиваются с каждым вызовом try в течение времени существования приложения.
Примеры
// Listen for the InertiaStateEntered event
public void InertiaStateEntered(InteractionTracker sender, InteractionTrackerInertiaStateEnteredArgs args)
{
// Adding velocity to InteractionTracker if condition met
if (_extraVelocityNeeded)
{
// Adding velocity to the scale motion.
_tracker.TryUpdateScaleWithAdditionalVelocity(3.0f, new Vector3(75f));
}
}
Комментарии
Если InteractionTracker находится в состоянии взаимодействия (пользователь активно управляет) и вызывается tryUpdateScaleWithAdditionalVelocity, система проигнорирует этот запрос . При этом возникает событие, которое можно прослушивать. При отправке из одного из других состояний прослушайте событие, сработавшее для инерцииStateEntered, и проверка свойство RequestId, определяющее, какой запрос вызвал обратный вызов.
В таблице ниже приведена сводка ожидаемого поведения при вызове этого метода в определенном состоянии:
Текущее состояние | Результат |
---|---|
Бездействие | Изменения состояния в модификаторах инерции и инерции оцениваются с запрошенной скоростью в качестве начальной скорости. |
Взаимодействие | Запрос игнорируется |
Инерция | Инерция перезапускается (состояние повторно входит в инерцию), а модификаторы инерции оцениваются с запрошенной скоростью, добавленной к текущей скорости. |
CustomAnimation | Текущие остановки анимации и изменения состояния на инерцию с помощью модификаторов инерции, вычисляемых с использованием запрошенной скорости в качестве начальной скорости |