Scrolling-Objektsammlung

Scrolling-Objektsammlung

Die MRTK-Objektsammlung ist eine UX-Komponente, die das Scrollen von 3D-Inhalten durch einen enthaltenen sichtbaren Bereich ermöglicht. Die Bildlaufbewegung kann durch Eingabeinteraktion in der Nähe oder weit entfernt und durch diskrete Paginierung ausgelöst werden. Es unterstützt sowohl interaktive als auch nicht interaktive Objekte.

Erste Schritte mit der Bildlaufobjektsammlung

Einrichten der Szene

  1. Erstellen Sie eine neue Unity-Szene.
  2. Fügen Sie mrtk zur Szene hinzu, indem Sie zum Mixed Reality ToolkitAdd to Scene navigieren und konfigurieren.

Einrichten des Bildlaufobjekts

  1. Erstellen Sie ein leeres Spielobjekt in der Szene, und ändern Sie seine Position in (0, 0, 1).

  2. Fügen Sie dem Spielobjekt eine Bildlaufobjektauflistungskomponente hinzu.

    Wenn die Bildlaufobjektauflistung hinzugefügt wird, werden automatisch ein Box-Collider und eine nah interaktionsfähige Komponente an das Stammspielobjekt angefügt. Diese Komponenten ermöglichen es dem Bildlaufobjekt, auf Eingabeereignisse in der Nähe und fernen Interaktion zu lauschen, z. B. eine Zeigereingabe oder einen Zeigerklick.

    Die MRTK-Bildlaufobjektsammlung verfügt über zwei wichtige Elemente, die als untergeordnete Spielobjekte unter der Stamm-Scrollobjekthierarchie erstellt werden:

    • Container – Alle Bildlaufinhaltsobjekte müssen untergeordnete Elemente des Containerspielobjekts sein.
    • Clipping bounds – Wenn die Bildlaufinhaltsmaskierung aktiviert ist, stellt das Clipping bounds-Element sicher, dass nur der scrollbare Inhalt innerhalb seiner Grenzen sichtbar ist. Das Spielobjekt clipping bounds verfügt über zwei Komponenten: einen deaktivierten Feld-Collider und einen Clipping box.

Scrollen von Objektsammlungselementen

Hinzufügen von Inhalt zum Bildlaufobjekt

Die Bildlaufobjektauflistung kann mit einer Rasterobjektauflistung kombiniert werden, um Inhalt in einem Raster ausgerichteter Elemente zu layouten, die eine einheitliche Größe und einen einheitlichen Abstand aufweisen.

  1. Erstellen Sie ein leeres Spielobjekt als untergeordnetes Element des Scrollcontainers.
  2. Fügen Sie dem Spielobjekt eine Grid-Objektauflistungskomponente hinzu.
  3. Konfigurieren Sie für einen vertikalen Bildlauf in einer einzelnen Spalte auf der Registerkarte Inspektor die Rasterobjektsammlung wie folgt:
    • Num-Spalten:1
    • Layout:Spalte und Zeile
    • Anker:oben links
  4. Ändern Sie die Zellenbreite und -höhe entsprechend den Abmessungen der Inhaltsobjekte.
  5. Fügen Sie die Inhaltsobjekte als untergeordnete Elemente des Rasterobjekts hinzu.
  6. Klicken Sie auf Sammlung aktualisieren.

Rasterlayout

Wichtig

Jedes Bildlaufinhaltsobjektmaterial muss den MRTK-Standard-Shader verwenden, damit der Clippingeffekt auf dem sichtbaren Bereich ordnungsgemäß funktioniert.

Hinweis

Wenn die Bildlaufinhaltsmaskierung aktiviert ist, fügt die Bildlaufobjektauflistung allen Inhaltsobjekten, an die ein Renderer angefügt ist, eine Materialinstanzkomponente hinzu. Diese Komponente wird verwendet, um die Lebensdauer von instanzierten Materialien zu verwalten und die Arbeitsspeicherleistung zu verbessern.

Konfigurieren des bildlauffähigen Bereichs

  1. Konfigurieren Sie zum vertikalen Scrollen durch eine einzelne Spalte von Objekten auf der Registerkarte Inspektor die Objektsammlung für das Scrollen wie folgt:
    • Zellen pro Ebene:1
    • Wählen Sie die Anzahl der Ebenen pro Seite entsprechend der gewünschten Anzahl sichtbarer Zeilen aus.
  2. Ändern Sie die Seitenzellenbreite,Höhe und Tiefe entsprechend den Abmessungen der Inhaltsobjekte.

Beachten Sie, dass die Inhaltsobjekte, die sich außerhalb des bildlauffähigen Bereichs befinden, jetzt deaktiviert sind, während Objekte, die den Bildlauf-Wireframe überschneiden, vom Clippingprimitiven teilweise maskiert werden.

Anzeigebereich

Testen der Bildlaufobjektsammlung im Editor

  1. Drücken Sie „Wiedergabe“, und halten Sie die Leertaste gedrückt, um eine Eingabesimulationshand anzuzeigen.
  2. Bewegen Sie die Hand, bis sich der Bildlauf-Collider oder ein beliebiger interaktiver Bildlaufinhalt im Fokus befindet, und lösen Sie die Scrollbewegung aus, indem Sie mit der linken Maus klicken und nach oben und unten ziehen.

Steuern des Bildlaufobjekts aus dem Code

Die MRTK-Objektauflistung zum Scrollen macht einige öffentliche Methoden verfügbar, die das Verschieben des Scrollcontainers ermöglichen, indem die Position entsprechend der Eigenschaftenkonfiguration ausgerichtet pagination wird.

Ein Beispiel für den Zugriff auf die Paginierungsschnittstelle der Bildlaufobjektauflistung steht unter dem Ordner zur MRTK/Examples/Demos/ScrollingObjectCollection/Scripts Verfügung. Das scrollbare Beispielskript für die Paginierung kann mit jeder vorhandenen Bildlaufobjektsammlung in der Szene verknüpft werden. Auf das Skript kann dann von Szenenkomponenten verwiesen werden, die Unity-Ereignisse verfügbar machen (z. B. MRTK-Schaltfläche).

public class ScrollablePagination : MonoBehaviour
{
    [SerializeField]
    private ScrollingObjectCollection scrollView;

    public void ScrollByTier(int amount)
    {
        scrollView.MoveByTiers(amount);
    }
}

Scrollen von Objektsammlungseigenschaften

Allgemein Beschreibung
Bildlaufrichtung Die Richtung, in der der Inhalt scrollen soll.
Paginierung Beschreibung
Zellen pro Ebene Anzahl der Zellen in einer Zeile in der Bildlaufansicht nach oben oder Anzahl der Zellen in einer Spalte in der Bildlaufansicht links rechts.
Ebenen pro Seite Anzahl der sichtbaren Ebenen im Scrollbereich.
Seitenzelle Dimensionen der Paginierungszelle.
Erweiterte Einstellungen Beschreibung
Maskenbearbeitungsmodus Bearbeitungsmodi zum Definieren der Begrenzungen für die Maskierung von Clippingboxen. "Auto" verwendet automatisch Paginierungswerte. "Manuell" ermöglicht die direkte Bearbeitung des Clippingboxobjekts.
Collider-Bearbeitungsmodus Bearbeitungsmodi zum Definieren der Grenzen des Scrollinteraktions-Colliders. "Auto" verwendet automatisch Paginierungswerte. "Manuell" ermöglicht die direkte Bearbeitung des Colliders.
Scrollen kann durchgeführt werden Aktiviert/deaktiviert das Scrollen mit Nah-/Ferninteraktion.
Verwenden beim Vorabrendering Schaltet um, ob die scrollingObjectCollection das Camera OnPreRender-Ereignis verwendet, um die Sichtbarkeit von Inhalten zu verwalten.
Paginierungskurve Animationskurve für Paginierung.
Animationslänge Die Zeitspanne (in Sekunden), die paginationCurve für die Auswertung in Anspruch nimmt.
Schwellenwert für Handdelta scrollen Die Entfernung in Metern, die der aktuelle Zeiger entlang der Bildlaufrichtung bewegen kann, bevor ein Schiebeziehpunkt ausgelöst wird.
Berührungsabstand an der Front Abstand in Metern, um eine lokale xy-Ebene zu positionieren, die verwendet wird, um zu überprüfen, ob eine Touchinteraktion am Anfang der Bildlaufansicht gestartet wurde.
Releaseschwellenwert Entfernen Sie die Menge in Metern von den Scrollgrenzen, die erforderlich sind, um von der Toucheingabe in die Freigabe übergehen zu können.
Geschwindigkeit Beschreibung
Geschwindigkeitstyp Der gewünschte Geschwindigkeitsfallofftyp für den Scroller.
Geschwindigkeitsmultiplikator Menge der (zusätzlichen) Geschwindigkeit, die auf den Scroller angewendet werden soll.
Geschwindigkeitsentschlüsselung Umfang des Falloffs, der auf die Geschwindigkeit angewendet wird.
Bounce-Multiplikator Multiplikator zum Hinzufügen von mehr Bounce zum Overscroll einer Liste bei Verwendung von Falloff pro Frame oder Falloff pro Element.
Debugoptionen Beschreibung
Maskierung aktiviert Sichtbarkeitsmodus von Bildlaufinhalten. Der Standardwert maskiert alle Objekte außerhalb des bildlaufbaren Bereichs.
Schwellenwertebenen anzeigen True gibt an, dass der Editor die Touch-Releaseschwellenwertebenen um die Bildlaufgrenzen rendert.
Debuggen der Pagination Verwenden Sie diesen Abschnitt, um die Scrollpagination zur Laufzeit zu debuggen.
Events BESCHREIBUNG
Klicken Sie auf . Wird ausgelöst, wenn der Scrollhintergrund-Collider oder ein beliebiger interaktiver Inhalt einen Klick empfängt.
On touch started (Bei Berührung gestartet) Wird ausgelöst, wenn der Scrollhintergrund-Collider oder ein beliebiger interaktiver Inhalt einen Touch in der Nähe der Interaktion empfängt.
Bei Berührung beendet Wird ausgelöst, wenn eine aktive Touchinteraktion beendet wird, wenn der Nahinteraktionszeiger eine Freigabeschwellenwertebene überschreitet.
On-On-Anschub gestartet Wird ausgelöst, wenn sich der Scrollcontainer durch Interaktion, Geschwindigkeitsfalloff oder Pagination bewegt.
Am Ende der 30er-Jahre Wird ausgelöst, wenn sich der Scrollcontainer nicht mehr durch Interaktion, Geschwindigkeitsfalloff oder Pagination bewegt.

Scrollen einer Beispielszene

Die Beispielszene ScrollingObjectCollection.unity besteht aus drei scrollbaren Beispielen, die jeweils eine andere Geschwindigkeitsfalloffkonfiguration haben. Die Beispielszene enthält Wände, um das Oberflächenplatzierungsverhalten zu zeigen, die in der Hierarchie standardmäßig deaktiviert sind. Die Beispielszene befindet sich im MRTK/Examples/Demos/ScrollingObjectCollection/Scenes Ordner .

Beispielszene zum Scrollen der Objektsammlung

Scrollen von Beispielvorfabs

Der Einfachheit halber stehen zwei Bildlaufobjektsammlungs-Prefabs zur Verfügung. Die Beispiel-Prefabs finden Sie im MRTK/Examples/Demos/ScrollingObjectCollection/Prefabs Ordner .

Scrollen von Objektsammlungs-Prefabs

Siehe auch