InteractionTracker.TryUpdatePositionWithAdditionalVelocity(Vector3) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Intenta actualizar la posición de InteractionTracker agregando velocidad.
El método TryUpdatePositionWithAdditionalVelocity agrega la entrada Vector3 que representa una velocidad adicional a la velocidad actual de InteractionTracker. Como resultado, dado que la velocidad de InteractionTracker ha cambiado ahora, la posición de reposo de destino de InteractionTracker ahora cambia. Se puede llamar a TryUpdatePositionWithAdditionalVelocity desde estados Inactivo, Inercia o CustomAnimation; de este modo, agregará o actualizará la velocidad de InteractionTracker y entrará en el estado De inercia.
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
Parámetros
Velocidad que se va a agregar en píxeles por segundo.
Devoluciones
int
Devuelve el identificador de solicitud. En las transiciones de estado, la solicitud que provocó el cambio en estado se incluirá en los argumentos. Estos identificadores se iniciarán en 1 y aumentarán con cada llamada try durante la vigencia de la aplicación.
Ejemplos
// 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));
}
}
Comentarios
Si InteractionTracker está en su estado de interacción (manipulación activa del usuario) y se llama a TryUpdatePositionWithAdditionalVelocity, el sistema omitirá esta solicitud: se desencadena un evento cuando esto ocurre que se puede escuchar. Si se envía desde uno de los otros estados, escuche el evento desencadenado para InertiaStateEntered y compruebe la propiedad RequestId que identifica qué solicitud desencadenó la devolución de llamada. En la tabla siguiente se resume el comportamiento esperado cuando se llama a este método en un estado determinado:
Estado actual | Resultado |
---|---|
Inactivo | Los cambios de estado en los modificadores de inercia e inercia se evalúan con la velocidad solicitada como velocidad inicial. |
Interacción | Solicitud omitida |
Inercia | Se reinicia la inercia (el estado vuelve a entrar en la inercia) y los modificadores de inercia se evalúan con la velocidad solicitada agregada a la velocidad actual. |
CustomAnimation | La animación actual detiene y cambia de estado a la inercia con modificadores de inercia evaluados mediante la velocidad solicitada como velocidad inicial |