Przewijanie kolekcji obiektów

Przewijanie kolekcji obiektów

Kolekcja obiektów przewijanych zestawu danych MRTK to składnik środowiska użytkownika, który umożliwia przewijanie zawartości 3D przez zawarty obszar do wyświetlania. Ruch przewijania może być wyzwalany przez niemal lub dalekosiąc interakcję wejściowa oraz przez dyskretne dzielenie na strony. Obsługuje zarówno obiekty interakcyjne, jak i nieinterakcyjne.

Wprowadzenie do kolekcji obiektów przewijanych

Konfigurowanie sceny

  1. Utwórz nową scenę aparatu Unity.
  2. Dodaj zestaw narzędzi MRTK do sceny, przechodząc do Mixed Reality Toolkit Add to Scene (Dodaj do sceny) > i Configure (Konfiguruj).

Konfigurowanie obiektu przewijania

  1. Utwórz pusty obiekt gry w scenie i zmień jego położenie na (0, 0, 1).

  2. Dodaj składnik kolekcji obiektów przewijanych do obiektu game.

    Po dodaniu kolekcji obiektów przewijanych do głównego obiektu gry zostanie automatycznie dołączony element collider box i składnik z bliskiej interakcji, które można dotykać. Te składniki umożliwiają obiektowi przewijania nasłuchiwać zdarzeń wejściowych blisko i daleko interakcji, takich jak dotknięcie wskaźnika lub kliknięcie.

    Kolekcja obiektów przewijanych zestawu danych MRTK ma dwa ważne elementy, które są tworzone jako podrzędne obiekty gry w hierarchii obiektów przewijania głównego:

    • Container — Wszystkie przewijane obiekty zawartości muszą być obiektami podrzędnych obiektu gry kontenera.
    • Clipping bounds — Jeśli maskowanie zawartości przewijania jest włączone, element obcinania granic zapewnia, że widoczna jest tylko zawartość przewijana wewnątrz jego granic. Obiekt gry z obcięciem granic ma dwa składniki: wyłączony kolider pola i pole przycinania.

Przewijanie elementów kolekcji obiektów

Dodawanie zawartości do obiektu przewijanego

Kolekcję obiektów przewijanych można połączyć z kolekcją obiektów siatki w celu układu zawartości w siatce wyrównanych elementów, które mają jednolity rozmiar i odstępy.

  1. Utwórz pusty obiekt gry jako element podrzędny kontenera przewijania.
  2. Dodaj składnik kolekcji obiektów siatki do obiektu game.
  3. W przypadku pionowego przewijania pojedynczej kolumny na karcie inspektora skonfiguruj kolekcję obiektów siatki w następujący sposób:
    • Kolumny Num: 1
    • Układ: kolumna, a następnie wiersz
    • Kotwica: lewa górna część
  4. Zmień szerokość i wysokość komórki zgodnie z wymiarami obiektów zawartości.
  5. Dodaj obiekty zawartości jako obiekty children obiektu siatki.
  6. Naciśnij przycisk aktualizuj kolekcję.

Układ siatki

Ważne

Każdy przewijany materiał obiektu zawartości musi używać standardowego cieniowania zestawu narzędzi MRTK, aby efekt przycinania w obszarze, który można wyświetlić, działał prawidłowo.

Uwaga

Jeśli przewijanie maskowania zawartości jest włączone, kolekcja obiektów przewijanych spowoduje dodanie składnika wystąpienia materiału do wszystkich obiektów zawartości, które mają dołączony program renderjący. Ten składnik służy do zarządzania okresem istnienia wystąpień materiałów i poprawiania wydajności pamięci.

Konfigurowanie przewijanego obszaru z możliwością wyświetlania

  1. Aby przewijać w pionie pojedynczą kolumnę obiektów, na karcie Inspektor skonfiguruj kolekcję obiektów przewijanych w następujący sposób:
    • Komórki na warstwę: 1
    • Wybierz liczbę warstw na stronie zgodnie z żądaną liczbą widocznych wierszy
  2. Zmień szerokość, wysokość i głębokość komórki strony zgodnie z wymiarami obiektów zawartości.

Zwróć uwagę, że obiekty zawartości znajdujące się poza obszarem przewijanym są teraz wyłączone, podczas gdy obiekty przecinające szkielet przewijania mogą być częściowo maskowane przez obcinający prymityw.

Viewable area (Obszar z widokiem)

Testowanie kolekcji obiektów przewijanych w edytorze

  1. Naciśnij klawisz Play i przytrzymaj spację, aby wyświetlić ręczną symulację danych wejściowych.
  2. Przesuń ręki do zwijania przewijania lub dowolna przewijana zawartość interaktywna jest skupiony i wyzwolić przewijanie, klikając i przeciągając w górę i w dół za pomocą myszy po lewej stronie.

Kontrolowanie obiektu przewijania z poziomu kodu

Kolekcja obiektów przewijanych zestawu danych MRTK udostępnia kilka metod publicznych, które umożliwiają przenoszenie przewijanego kontenera przez przyciąganie jego położenia zgodnie z pagination konfiguracją właściwości.

Przykład sposobu uzyskiwania dostępu do interfejsu stronicowania kolekcji obiektów przewijanych jest dostępny do użycia w MRTK/Examples/Demos/ScrollingObjectCollection/Scripts folderze . Przykładowy skrypt stronicowania z przewijaniem można połączyć z dowolną istniejącą kolekcją obiektów przewijanych w scenie. Następnie można odwoływać się do skryptu przez składniki sceny ujawniające zdarzenia aparatu Unity (np. przycisk MRTK).

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

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

Właściwości kolekcji obiektów przewijania

Ogólne Opis
Kierunek przewijania Kierunek, w którym zawartość powinna być przewijana.
Dzielenie na strony Opis
Komórki na warstwę Liczba komórek w wierszu w widoku przewijania w górę lub liczba komórek w kolumnie w widoku przewijania po lewej stronie.
Warstwy na stronę Liczba widocznych warstw w obszarze przewijania.
Komórka strony Wymiary komórki stronicowania.
Ustawienia zaawansowane Opis
Tryb maskowania edycji Tryby edycji służące do definiowania granic maskowania pola przycinania. Opcja "Automatycznie" automatycznie używa wartości stronicowania. Instrukcja "Manual" umożliwia bezpośrednie manipulowanie obiektem clipping box.
Tryb edycji kolidowania Tryby edycji służące do definiowania granic kolidowania interakcji przewijania. Opcja "Automatycznie" automatycznie używa wartości stronicowania. Instrukcja "Manual" umożliwia bezpośrednie manipulowanie zderzaczem.
Można przewijać Włącza/wyłącza przewijanie w przypadku interakcji bliskiej/daleko.
Używanie na wstępnym renderowaniu Przełącza, czy przewijanieObjectCollection będzie używać zdarzenia Camera OnPreRender do zarządzania widocznością zawartości.
Krzywa stronicowania Krzywa animacji dla stronicowania.
Długość animacji Szacowanie czasu (w sekundach) ciągu PaginationCurve.
Próg przewijania przyrostowego ręcznego Odległość, w metrach, bieżący wskaźnik może poruszać się wzdłuż kierunku przewijania przed wyzwoleniem przeciągania przewijania.
Odległość przed dotknięciem Odległość w metrach do położenia lokalnej płaszczyzny xy używanej do sprawdzania, czy interakcja dotykowa rozpoczęła się przed widokiem przewijania.
Próg wydania Ilość miejsca, w metrach, od granic przewijania potrzebnych do przejścia z dotknięcia na zwolnione.
Szybkość pracy Opis
Typ prędkości Żądany typ spadku prędkości dla scrollera.
Multiplikator prędkości Ilość (dodatkowej) prędkości, która ma zostać zastosowana do przewijania.
Velocityvelocityen Wielkość spadku zastosowanego do prędkości.
Multiplier odbicia Mnożenie w celu dodania większej liczby odbicia do przerzucania listy w przypadku użycia rezerwy na ramkę lub rezerwy na element.
Opcje debugowania Opis
Maskowanie włączone Tryb widoczności zawartości przewijania. Wartość domyślna spowoduje maskowanie wszystkich obiektów poza obszarem przewijanym.
Pokazywanie płaszczyzn progowych W przypadku wartości true edytor renderuje płaszczyzny progu wydania dotykowego wokół granic przewijania.
Debugowanie stronicowania Ta sekcja pozwala debugować stronicowanie przewijania podczas wykonywania.
Zdarzenia Opis
Kliknij pozycję Wyzwalane po kliknięciu przycisku zwijania przewijania w tle lub dowolnej jego zawartości interaktywnej.
Po dotknięciu rozpoczęte Wyzwalane, gdy zderzacz tła przewijania lub dowolna jego zawartość interaktywna otrzymuje dotyk niemal interakcji.
Po zakończeniu pracy dotykowej Wyzwalane, gdy aktywna interakcja dotykowa zostanie zakończona, gdy wskaźnik blisko interakcji przekroczy płaszczyznę progu wydania.
W rozpędnie rozpoczęto Wyzwalane, gdy kontener przewijania zaczyna się przesuwać w związku z interakcją, spadkiem prędkości lub podziałem na strony.
Koniec dynamiki Wyzwalane, gdy kontener przewijania przestaje się przesuwać w związku z interakcją, spadkiem szybkości lub podziałem na strony.

Przewijanie przykładowej sceny

Przykładowa scena ScrollingObjectCollection.unity składa się z 3 przykładów przewijanych, z których każdy ma inną konfigurację rezerwy prędkości. Przykładowa scena zawiera ściany, które pokazują zachowanie umieszczania powierzchni, które jest domyślnie wyłączone w hierarchii. Przykładową scenę można znaleźć w MRTK/Examples/Demos/ScrollingObjectCollection/Scenes folderze .

Przykładowa scena z przewijaniem kolekcji obiektów

Przewijanie przykładowych prefabryktów

Dla wygody dostępne są dwa prefabrykaty kolekcji obiektów przewijania. Przykładowe prefabrykaty można znaleźć w MRTK/Examples/Demos/ScrollingObjectCollection/Prefabs folderze .

Przewijanie prefabryktów kolekcji obiektów

Zobacz też