Condividi tramite


InteractionTracker.NaturalRestingPosition Proprietà

Definizione

Posizione di riposo naturale per InteractionTracker.

La proprietà NaturalRestingPosition è la posizione calcolata in cui InteractionTracker verrà arrestato senza tenere conto dei limiti o dei modificatori inerziali. Questa proprietà è spesso utile per azioni come la virtualizzazione in un'esperienza di scorrimento, in cui è importante conoscere la posizione in cui InteractionTracker si arresterà. Esistono due casi d'uso principali per l'uso della proprietà NaturalRestingPosition: recupero del relativo valore corrente negli argomenti dell'evento InertiaStateEntered o riferimento a questa proprietà in un oggetto ExpressionAnimation durante la creazione di elementi come modificatori di inerzia.

public:
 property float3 NaturalRestingPosition { float3 get(); };
float3 NaturalRestingPosition();
public Vector3 NaturalRestingPosition { get; }
var vector3 = interactionTracker.naturalRestingPosition;
Public ReadOnly Property NaturalRestingPosition As Vector3

Valore della proprietà

Vector3 Vector3

float3

Posizione di riposo naturale per InteractionTracker.

Esempio

// Listen for the InertiaStateEntered event, so can grab NaturalRestingPosition value.
public void InertiaStateEntered(InteractionTracker sender, InteractionTrackerInertiaStateEnteredArgs args)
{
  // Grab the NaturalRestingPosition out of the args when the event is fired. Now have access to calculated Natural Rest spot
  Vector3 naturalRest = args.NaturalRestingPosition;
}

// Reference the NaturalRestingPosition property in an expression for things like 	SnapPoints
void CreateBasicSnapPoint(float highBound, float lowBound)
{
  var snappoint = InteractionTrackerInertiaRestingValue.Create(_compositor);

  // Reference the NaturalRestingPosition of InteractionTracker in an ExpressionAnimation for conditional portion of an InertiaModifier.
  snappoint.Condition = _compositor.CreateExpressionAnimation("this.target.NaturalRestingPosition.Y >= 	lowBound && this.target.NaturalRestingPosition.Y < highBound ");

  snappoint.Condition.SetScalarParameter("lowBound", lowBound);
  snappoint.Condition.SetScalarParameter("highBound", highBound);

  // Snap to the highbound if condition met
  snappoint.RestingValue = _compositor.CreateExpressionAnimation("highBound");
  snappoint.RestingValue.SetScalarParameter("highBound", highBound);

  yInertiaModifier.Add(snappoint);

  _tracker.ConfigurePositionYInertiaModifiers(yInertiaModifier);
}

Commenti

I due casi d'uso descritti nel frammento di codice precedente sono gli usi principali della proprietà NaturalRestingPosition. Anche se si potrebbe essere tentati di fare riferimento a questa proprietà fuori InteractionTracker come qualsiasi altra relazione object.property, non sempre si otterrà il valore più aggiornato. In questa situazione è consigliabile ascoltare l'evento InertiaStateEntered e acquisire il valore più recente dagli argomenti.

Si applica a