InteractionTracker.TryUpdatePositionWithAdditionalVelocity(Vector3) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mencoba memperbarui posisi InteractionTracker dengan menambahkan kecepatan.
Metode TryUpdatePositionWithAdditionalVelocity menambahkan input Vector3 yang mewakili kecepatan tambahan ke kecepatan InteractionTracker saat ini. Akibatnya, karena kecepatan InteractionTracker sekarang telah berubah, posisi istirahat yang ditargetkan untuk InteractionTracker sekarang berubah. TryUpdatePositionWithAdditionalVelocity dapat dipanggil dari status Idle, Inertia, atau CustomAnimation - melakukannya akan menambahkan atau memperbarui kecepatan InteractionTracker dan memasuki status Inertia.
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
Mengembalikan
int
Mengembalikan ID permintaan. Pada transisi status, permintaan yang menyebabkan perubahan status akan disertakan dalam args. ID ini akan dimulai pada 1 dan meningkat dengan setiap panggilan percobaan selama masa pakai aplikasi.
Contoh
// 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));
}
}
Keterangan
Jika InteractionTracker berada dalam Status Berinteraksi (pengguna secara aktif memanipulasi), dan TryUpdatePositionWithAdditionalVelocity dipanggil, sistem akan mengabaikan permintaan ini - peristiwa akan diaktifkan ketika ini terjadi yang dapat didengarkan. Jika dikirim dari salah satu status lain, dengarkan peristiwa yang diaktifkan untuk InertiaStateEntered dan periksa properti RequestId yang mengidentifikasi permintaan mana yang memicu panggilan balik. Tabel di bawah ini meringkas perilaku yang diharapkan ketika metode ini dipanggil dalam status tertentu:
Status Saat Ini | Hasil |
---|---|
Idle | Perubahan status pada pengubah inertia dan inertia dievaluasi dengan kecepatan yang diminta sebagai kecepatan awal |
Berinteraksi | Permintaan diabaikan |
Inersia | Inersia dimulai ulang (status memasuki kembali inersia) dan pengubah inertia dievaluasi dengan kecepatan yang diminta ditambahkan ke kecepatan saat ini |
CustomAnimation | Animasi saat ini berhenti dan status berubah menjadi inersia dengan pengubah inertia dievaluasi menggunakan kecepatan yang diminta sebagai kecepatan awal |