InteractionTracker.TryUpdateScaleWithAdditionalVelocity 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
嘗試藉由新增指定的速度來更新尺規。
TryUpdateScaleWithAdditionalVelocity 方法會將代表其他速度的輸入純量新增至 InteractionTracker 目前的速度,並將中心點移至輸入的 Vector3。 因此,由於 InteractionTracker 的速度現在已變更, 因此 InteractionTracker 的目標其餘縮放位置現在會變更。 TryUpdateScaleWithAdditionalVelocity 可以從 Idle、Inertia 或 CustomAnimation 狀態呼叫 –這麼做會新增或更新 InteractionTracker 的速度並進入慣性狀態。
public:
virtual int TryUpdateScaleWithAdditionalVelocity(float velocityInPercentPerSecond, float3 centerPoint) = TryUpdateScaleWithAdditionalVelocity;
int TryUpdateScaleWithAdditionalVelocity(float const& velocityInPercentPerSecond, float3 const& centerPoint);
public int TryUpdateScaleWithAdditionalVelocity(float velocityInPercentPerSecond, Vector3 centerPoint);
function tryUpdateScaleWithAdditionalVelocity(velocityInPercentPerSecond, centerPoint)
Public Function TryUpdateScaleWithAdditionalVelocity (velocityInPercentPerSecond As Single, centerPoint As Vector3) As Integer
參數
- velocityInPercentPerSecond
-
Single
float
要新增至尺規的速度。
傳回
Int32
int
傳回要求識別碼。 在狀態轉換時,造成狀態變更的要求將會包含在引數中。 這些識別碼會從 1 開始,並在應用程式存留期期間,隨著每次嘗試呼叫而增加。
範例
// Listen for the InertiaStateEntered event
public void InertiaStateEntered(InteractionTracker sender, InteractionTrackerInertiaStateEnteredArgs args)
{
// Adding velocity to InteractionTracker if condition met
if (_extraVelocityNeeded)
{
// Adding velocity to the scale motion.
_tracker.TryUpdateScaleWithAdditionalVelocity(3.0f, new Vector3(75f));
}
}
備註
如果 InteractionTracker 處於互動狀態 (使用者主動操作) ,而且呼叫 TryUpdateScaleWithAdditionalVelocity 時,系統會忽略此要求 –當發生可接聽的事件時,就會引發事件。 如果從其中一個其他狀態傳送,請接聽針對 InertiaStateEntered 引發的事件,並檢查 RequestId 屬性,以識別觸發回呼的要求。
下表摘要說明以特定狀態呼叫此方法時的預期行為:
目前狀態 | 成果 |
---|---|
閒置 | 慣性與慣性修飾詞的狀態變更會以要求的速度評估為初始速度 |
Interacting | 要求已忽略 |
慣性 | 慣性會重新開機 (狀態重新進入慣性) ,而慣性修飾詞會評估為已要求的速度新增至目前速度 |
CustomAnimation | 目前的動畫會停止,並使用要求的速度評估慣性修飾詞的狀態變更為初始速度 |