Bagikan melalui


InteractionTracker.NaturalRestingPosition Properti

Definisi

Posisi istirahat alami untuk InteractionTracker.

Properti NaturalRestingPosition adalah posisi terhitung yang akan dihentikan InteractionTracker tanpa memperhitungkan batas atau pengubah inertia. Properti ini sering berguna untuk tindakan seperti virtualisasi dalam pengalaman gulir, di mana penting untuk mengetahui lokasi di mana InteractionTracker akan berhenti. Ada dua kasus penggunaan utama untuk menggunakan properti NaturalRestingPosition: Mengambil nilainya saat ini dalam args peristiwa InertiaStateEntered atau merujuk properti ini dalam ExpressionAnimation saat membuat hal-hal seperti pengubah inertia.

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

Nilai Properti

Vector3 Vector3

float3

Posisi istirahat alami untuk InteractionTracker.

Contoh

// 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);
}

Keterangan

Dua kasus penggunaan yang dijelaskan dalam cuplikan kode di atas adalah penggunaan utama properti NaturalRestingPosition. Meskipun Anda mungkin tergoda untuk mereferensikan properti ini dari InteractionTracker seperti hubungan object.property lainnya, Anda tidak akan selalu mendapatkan nilai terbaru. Disarankan dalam situasi ini bahwa Anda mendengarkan peristiwa InertiaStateEntered dan mengambil nilai terbaru dari argumen.

Berlaku untuk