Bagikan melalui


InteractionTracker.TryUpdatePositionWithAdditionalVelocity(Vector3) Metode

Definisi

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

velocityInPixelsPerSecond
Vector3 Vector3

float3

Kecepatan untuk menambahkan piksel per detik.

Mengembalikan

Int32

int

Mengembalikan ID permintaan. Pada transisi status, permintaan yang menyebabkan perubahan status akan disertakan dalam argumen. 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 keadaan tertentu:

Status Saat IniHasil
IdlePerubahan status pada inersia dan pengubah inertia dievaluasi dengan kecepatan yang diminta sebagai kecepatan awal
BerinteraksiPermintaan diabaikan
InersiaInersia dimulai ulang (status memasuki kembali inersia) dan pengubah inertia dievaluasi dengan kecepatan yang diminta ditambahkan ke kecepatan saat ini
CustomAnimationAnimasi saat ini berhenti dan status berubah menjadi inersia dengan pengubah inersia dievaluasi menggunakan kecepatan yang diminta sebagai kecepatan awal

Berlaku untuk