InteractionTracker.TryUpdatePositionWithAdditionalVelocity(Vector3) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 nun die zielorientierte Ruheposition für InteractionTracker . TryUpdatePositionWithAdditionalVelocity kann entweder aus dem Leerlauf-, Inertia- oder CustomAnimation-Zustand aufgerufen werden. Dadurch wird entweder die Geschwindigkeit von InteractionTracker hinzugefügt oder aktualisiert und der Status "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
Die Geschwindigkeit, die in Pixel pro Sekunde hinzugefügt werden soll.
Gibt zurück
int
Gibt die Anforderungs-ID zurück. Bei Zustandsübergängen wird die Anforderung, die die Zustandsänderung verursacht hat, in die Argumente einbezogen. 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 Sich InteractionTracker im interagierenden Zustand befindet (benutzerseitig aktiv manipuliert), und TryUpdatePositionWithAdditionalVelocity aufgerufen wird, ignoriert das System diese Anforderung – ein Ereignis wird ausgelöst, wenn dies auftritt, auf das lauscht werden kann. Wenn sie aus einem der anderen Zustände gesendet wird, lauschen Sie auf das für InertiaStateEntered ausgelöste Ereignis, 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 Zustand | Ergebnis |
---|---|
Idle | Zustandsänderungen an Denträgheitsmodifizierern werden mit angeforderter Geschwindigkeit als Anfangsgeschwindigkeit ausgewertet. |
Interaktion | Anforderung ignoriert |
Trägheit | Die Erträgheit wird neu gestartet (Zustand tritt wieder in die Erträgheit ein) und Die Inertia-Modifizierer werden mit der angeforderten Geschwindigkeit ausgewertet, die der aktuellen Geschwindigkeit hinzugefügt wird. |
CustomAnimation | Aktuelle Animation stoppt und Zustandsänderungen an der Inertia mit Inertia-Modifizierern, die mithilfe der angeforderten Geschwindigkeit als Anfangsgeschwindigkeit ausgewertet werden |