Freigeben über


InteractionTracker.TryUpdatePositionWithAdditionalVelocity(Vector3) Methode

Definition

Versucht, die Position des InteractionTrackers durch Hinzufügen der Geschwindigkeit zu aktualisieren.

Die TryUpdatePositionWithAdditionalVelocity-Methode fügt die Eingabe Vector3 hinzu, die zusätzliche Geschwindigkeit zur aktuellen Geschwindigkeit von InteractionTracker darstellt. Da sich die Geschwindigkeit von InteractionTracker nun geändert hat, ändert sich daher die zielorientierte Ruheposition für InteractionTracker . TryUpdatePositionWithAdditionalVelocity kann entweder aus den Status "Idle", "Inertia" oder "CustomAnimation" aufgerufen werden. Dadurch wird entweder die Geschwindigkeit von InteractionTracker hinzugefügt oder aktualisiert und der Zustand "Inertia" eingegeben.

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

Parameter

velocityInPixelsPerSecond
Vector3 Vector3

float3

Die hinzuzufügende Geschwindigkeit in Pixel pro Sekunde.

Gibt zurück

Int32

int

Gibt die Anforderungs-ID zurück. Bei Zustandsübergängen wird die Anforderung, die die Zustandsänderung verursacht hat, in die Argumente eingeschlossen. Diese IDs beginnen bei 1 und erhöhen sich mit jedem Try-Aufruf während der Lebensdauer der Anwendung.

Beispiele

// 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));
  }
}

Hinweise

Wenn InteractionTracker sich im interagierenden Zustand befindet (benutzeraktiv bearbeitet) und TryUpdatePositionWithAdditionalVelocity aufgerufen wird, ignoriert das System diese Anforderung. Wenn dies eintritt, wird ein Ereignis ausgelöst, auf das lauscht werden kann. Wenn sie von einem der anderen Zustände gesendet wird, lauschen Sie auf das Ereignis, das für InertiaStateEntered ausgelöst wurde, und überprüfen Sie die RequestId-Eigenschaft, die identifiziert, welche Anforderung den Rückruf ausgelöst hat. Die folgende Tabelle fasst das erwartete Verhalten zusammen, wenn diese Methode in einem bestimmten Zustand aufgerufen wird:

Aktueller ZustandErgebnis
IdleZustandsänderungen an DenTrägheitsmodifizierern werden mit der angeforderten Geschwindigkeit als Anfangsgeschwindigkeit ausgewertet.
InteraktionAnforderung ignoriert
TrägheitDie Erträgheit wird neu gestartet (der Zustand tritt wieder in die Unbewegheit ein) und die Tiamodifizierer werden ausgewertet, wobei die angeforderte Geschwindigkeit der aktuellen Geschwindigkeit hinzugefügt wird.
CustomAnimationAktuelle Animation hält an und ändert sich an der Inerträgheit, wobei Die angeforderte Geschwindigkeit als Anfängliche Geschwindigkeit ausgewertet wird.

Gilt für: