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


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

Скорость, добавляемая к шкале.

centerPoint
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)
  {
    // Adding velocity to the scale motion.
    _tracker.TryUpdateScaleWithAdditionalVelocity(3.0f, new Vector3(75f));
  }
}

Комментарии

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

В таблице ниже приведена сводка ожидаемого поведения при вызове этого метода в определенном состоянии:

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

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