Scrolling-Objektsammlung – MRTK2

Scrolling object collection

Die MRTK-Bildlaufobjektsammlung ist eine UX-Komponente, die das Scrollen von 3D-Inhalten durch einen enthaltenen Ansichtsbereich ermöglicht. Die Bildlaufbewegung kann durch eine nahe oder weit entfernte Eingabeinteraktion und durch diskrete Pagination ausgelöst werden. Es unterstützt sowohl interaktive als auch nicht interaktive Objekte.

Erste Schritte mit der Scrolling-Objektsammlung

Einrichten der Szene

  1. Erstellen Sie eine neue Unity-Szene.
  2. Fügen Sie MRTK zur Szene hinzu, indem Sie zum Mixed Reality Toolkit>"Szene hinzufügen" und "Konfigurieren" navigieren.

Einrichten des Bildlaufobjekts

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

  2. Fügen Sie der Spielobjektsammlung eine Bildlaufobjektsammlungskomponente hinzu.

    Wenn die Bildlaufobjektsammlung hinzugefügt wird, wird ein Feld kollidiert und eine nahe interaktionsfähige Komponente automatisch an das Stammspielobjekt angefügt. Diese Komponenten ermöglichen es dem Scrollobjekt, nahe und weit von Interaktionseingabeereignissen zu hören, z. B. eine Zeigereingabe oder klickt.

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

    • Container - Alle Bildlaufinhaltsobjekte müssen untergeordnete Elemente des Containerspielobjekts sein.
    • Clipping bounds - Wenn die Bildlaufformatierung aktiviert ist, stellt das Clipping-Bounds-Element sicher, dass nur der bildlaufbare Inhalt innerhalb seiner Grenzen sichtbar ist. Das Clipping Bounds-Spielobjekt verfügt über zwei Komponenten: ein deaktiviertes Feld kollidiert und ein Clipping-Feld.

Scrolling object collection elements

Hinzufügen von Inhalten zum Bildlaufobjekt

Die Scrolling-Objektsammlung kann mit einer Rasterobjektsammlung kombiniert werden, um Inhalte in einem Raster von ausgerichteten Elementen zu layouten, die einheitliche Größe und Abstand haben.

  1. Erstellen Sie ein leeres Spielobjekt als untergeordnetes Element des Bildlaufcontainers.
  2. Fügen Sie der Spielobjektkomponente eine Rasterobjektsammlungskomponente hinzu.
  3. Konfigurieren Sie auf der Registerkarte "Inspektor" für einen vertikalen Spaltenlauf die Rasterobjektsammlung wie folgt:
    • Zahlenspalten: 1
    • Layout: Spalte dann Zeile
    • Anker: oben links
  4. Ändern Sie die Zellbreite und Höhe entsprechend den Dimensionen der Inhaltsobjekte.
  5. Fügen Sie die Inhaltsobjekte als untergeordnete Elemente des Rasterobjekts hinzu.
  6. Drücken Sie die Updatesammlung.

Grid layout

Wichtig

Jedes Bildlaufinhaltsobjektmaterial muss den MRTK-Standard-Shader verwenden, damit der Clippingeffekt für den Ansichtsbereich ordnungsgemäß funktioniert.

Hinweis

Wenn das Scrollen von Inhaltsmasken aktiviert ist, fügt die Bildlaufobjektsammlung eine Materialinstanzkomponente zu allen Inhaltsobjekten hinzu, die einen Renderer angefügt haben. Diese Komponente wird verwendet, um instanzierte Materialien lebensdauer zu verwalten und die Speicherleistung zu verbessern.

Konfigurieren des bildlaufbaren Bereichs

  1. Für vertikales Scrollen durch eine einzelne Spalte von Objekten konfigurieren Sie auf der Registerkarte "Inspektor" die Bildlaufobjektsammlung 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 Dimensionen der Inhaltsobjekte.

Beachten Sie, wie die Inhaltsobjekte, die außerhalb des bildlaufbaren Bereichs liegen, jetzt deaktiviert sind, während Objekte, die den Bildlauf-Drahtrahmen durchschneiden, teilweise durch den Clipping-Grundtyp maskiert werden.

Viewable area

Testen der Bildlaufobjektsammlung im Editor

  1. Drücken Sie „Wiedergabe“, und halten Sie die Leertaste gedrückt, um eine Eingabesimulationshand anzuzeigen.
  2. Verschieben Sie die Hand, bis der Bildlauf kollidiert oder ein interaktiver Bildlaufinhalt im Fokus liegt und die Bildlaufbewegung ausgelöst wird, indem Sie mit der linken Maus auf und nach oben und unten ziehen.

Steuern des Bildlaufobjekts aus Code

Die MRTK-Bildlaufobjektsammlung macht einige öffentliche Methoden verfügbar, die das Verschieben des Bildlaufcontainers ermöglichen, indem sie ihre Position entsprechend der pagination Eigenschaftenkonfiguration anfügen.

Ein Beispiel für den Zugriff auf die Scrolling-Objektsammlungs-Paginationsschnittstelle ist verfügbar, um unter dem MRTK/Examples/Demos/ScrollingObjectCollection/Scripts Ordner zu verwenden. Das Beispielskript für scrollbare Pagination kann mit einer vorhandenen Scrolling-Objektsammlung in der Szene verknüpft werden. Das Skript kann dann von Szenenkomponenten verwiesen werden, auf die Unity-Ereignisse (z. B. MRTK-Schaltfläche) angezeigt werden.

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 Inhalte scrollen sollen.
Paginierung Beschreibung
Zellen pro Ebene Die Anzahl der Zellen in einer Zeile in einer Nach-unten-Bildlaufansicht oder der Anzahl der Zellen in einer Spalte auf der linken rechten Bildlaufansicht.
Ebenen pro Seite Anzahl der sichtbaren Ebenen im Bildlaufbereich.
Zelle "Seite" Dimensionen der Paginationszelle.
Erweiterte Einstellungen Beschreibung
Bearbeitungsmodus für Masken Bearbeiten Sie Modi zum Definieren der Begrenzungen des Clipping-Felds. "Auto" verwendet automatisch Paginierungswerte. "Manuell" ermöglicht die direkte Manipulation des Clipping box-Objekts.
Collider-Bearbeitungsmodus Bearbeiten Sie Modi zum Definieren der Bildlaufinteraktion kollidieren Grenzen. "Auto" verwendet automatisch Paginierungswerte. "Manuell" ermöglicht die direkte Manipulation des Colliders.
Kann scrollen Aktiviert/deaktiviert das Scrollen mit nah/weit Interaktion.
Verwenden des Vorab-Renderns Gibt an, ob die ScrollingObjectCollection das Kamera OnPreRender-Ereignis verwendet, um die Sichtbarkeit von Inhalten zu verwalten.
Paginationskurve Animationskurve für die Pagination.
Animationslänge Die Zeit (in Sekunden) der PaginationCurve wird ausgewertet.
Schwellenwert für den Hand-Delta-Bildlauf Der Abstand in Metern kann der aktuelle Zeiger entlang der Bildlaufrichtung fahren, bevor ein Bildlauf-Ziehen ausgelöst wird.
Front-Touchabstand Abstand in Metern, um eine lokale xy-Ebene zu positionieren, die verwendet wird, um zu überprüfen, ob eine Touchinteraktion vor der Bildlaufansicht gestartet wurde.
Schwellenwert für die Freigabe Ziehen Sie den Betrag in Metern aus den Bildlaufgrenzen zurück, die erforderlich sind, um von der Toucheingabe zu wechseln, die zu freigegeben wurde.
Geschwindigkeit Beschreibung
Art der Geschwindigkeit Der gewünschte Typ der Geschwindigkeitsabsturz für den Scroller.
Geschwindigkeitsmultiplizierer Menge der (zusätzlichen) Geschwindigkeit, die auf Scroller angewendet werden soll.
Geschwindigkeitsdämpfer Auf die Geschwindigkeit angewendete Falloffmenge.
Unzustellbarkeits-Multiplizierer Multiplizierer, um die Überscrollung einer Liste beim Verwenden von Falloff pro Frame oder Falloff pro Element hinzuzufügen.
Debugoptionen Beschreibung
Maske aktiviert Sichtbarkeitsmodus des Bildlaufinhalts. Der Standardwert wird alle Objekte außerhalb des bildlaufbaren Bereichs maskieren.
Schwellenwertebenen anzeigen Wenn true, rendert der Editor die Schwellenwerte für die Touchfreigabe um die Bildlaufgrenzen herum.
Debuggen der Paginierung Verwenden Sie diesen Abschnitt, um die Bildlauf paginierung während der Laufzeit zu debuggen.
Events BESCHREIBUNG
Klicken Sie auf Wird ausgelöst, wenn der Bildlaufhintergrund kollidiert oder ein interaktiver Inhalt einen Klick erhält.
Auf Toucheingabe gestartet Wird ausgelöst, wenn der Hintergrund des Bildlaufhintergrunds oder eines seiner interaktiven Inhalte eine Naheinteraktionseingabe erhält.
Die Toucheingabe wurde beendet. Ausgelöst, wenn eine aktive Touchinteraktion beendet wird, wenn der Naheinteraktionspunkt eine Freigabeschwellenebene überschreitet.
Die Dynamik begann Wird ausgelöst, wenn der Bildlaufcontainer durch Interaktion, Geschwindigkeitsfall oder Paginierung bewegt wird.
Am Schwung endete Wird ausgelöst, wenn der Bildlaufcontainer nicht mehr durch Interaktion, Geschwindigkeitsfall oder Paginierung bewegt wird.

Bildlaufbeispielszene

ScrollingObjectCollection.unity-Beispielszene besteht aus 3 bildlaufbaren 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 unter dem MRTK/Examples/Demos/ScrollingObjectCollection/Scenes Ordner.

Scrolling object collection example scene

Scrollen von Beispielvorfabs

Für den Komfort stehen zwei Bildlaufobjektsammlungsvorfabs zur Verfügung. Die Beispielvorfabs finden Sie unter dem MRTK/Examples/Demos/ScrollingObjectCollection/Prefabs Ordner.

Scrolling object collection prefabs

Weitere Informationen