Delen via


Objectverzameling schuiven — MRTK2

Objectverzameling schuiven

De MRTK-verzameling schuifobjecten is een UX-onderdeel waarmee 3D-inhoud kan worden geschoven via een ingesloten weergavegebied. De schuifbeweging kan worden geactiveerd door invoerinteractie in de buurt of ver weg en door discrete paginering. Het ondersteunt zowel interactieve als niet-interactieve objecten.

Aan de slag met de verzameling schuifobjecten

De scène instellen

  1. Maak een nieuwe eenheidsscène.
  2. Voeg MRTK toe aan de scène door te navigeren naar de Mixed Reality Toolkit>Toevoegen aan scène en configureren.

Het schuifobject instellen

  1. Maak een leeg gameobject in de scène en wijzig de positie in (0, 0, 1).

  2. Voeg een schuifobjectverzamelingsonderdeel toe aan het gameobject.

    Wanneer de verzameling schuivende objecten wordt toegevoegd, worden een box collider en een bijna-interactiebaar onderdeel automatisch aan het hoofdspelobject gekoppeld. Met deze onderdelen kan het scroll-object luisteren naar invoerevenementen in de buurt en ver weg, zoals een aanwijzer of klik.

    De MRTK-verzameling schuifobjecten bevat twee belangrijke elementen die als onderliggende gameobjecten worden gemaakt in de hoofdhiërarchie van schuivende objecten:

    • Container - Alle schuivende inhoudsobjecten moeten onderliggende elementen van het containergameobject zijn.
    • Clipping bounds - Als het schuiven van inhoudsmaskering is ingeschakeld, zorgt het element clipping bounds ervoor dat alleen de schuifbare inhoud binnen de grenzen zichtbaar is. Het spelobject clipping bounds heeft twee onderdelen: een uitgeschakelde box collider en een knipdoos.

Objectverzamelingselementen schuiven

Inhoud toevoegen aan het schuifobject

De verzameling schuifobjecten kan worden gecombineerd met een rasterobjectverzameling om inhoud in te delen in een raster met uitgelijnde elementen met een uniforme grootte en afstand.

  1. Maak een leeg gameobject als onderliggend element van de schuifcontainer.
  2. Voeg een rasterobjectverzamelingsonderdeel toe aan het gameobject.
  3. Voor een verticale schuif met één kolom configureert u op het tabblad Inspector de rasterobjectverzameling als volgt:
    • Getalkolommen: 1
    • Indeling: kolom en rij
    • Anker: linksboven
  4. Wijzig de celbreedte en -hoogte op basis van de afmetingen van de inhoudsobjecten.
  5. Voeg de inhoudsobjecten toe als onderliggende elementen van het rasterobject.
  6. Druk op Verzameling bijwerken.

Rasterindeling

Belangrijk

Elk materiaal van scrollend inhoudsobject moet de MRTK-standaard-shader gebruiken om ervoor te zorgen dat het knipeffect op het weergavegebied goed werkt.

Opmerking

Als het schuiven van inhoudsmaskering is ingeschakeld, wordt met de verzameling schuivende objecten een onderdeel van het materiaalexemplaren toegevoegd aan inhoudsobjecten waaraan een renderer is gekoppeld. Dit onderdeel wordt gebruikt om de levensduur van exemplaarmaterialen te beheren en de geheugenprestaties te verbeteren.

Het schuifgebied configureren dat zichtbaar is

  1. Als u verticaal door één kolom met objecten wilt schuiven, configureert u op het tabblad Inspector de verzameling schuifobjecten als volgt:
    • Cellen per laag: 1
    • Kies het aantal lagen per pagina op basis van het gewenste aantal zichtbare rijen
  2. Wijzig de breedte, hoogte en diepte van de paginacel op basis van de afmetingen van de inhoudsobjecten.

U ziet dat de inhoudsobjecten die zich buiten het schuifgebied bevinden, nu zijn uitgeschakeld, terwijl objecten die het scroll-draadframe snijden mogelijk gedeeltelijk worden gemaskeerd door de primitieve knipsels.

Zichtbaar gebied

De verzameling schuivende objecten in de editor testen

  1. Druk op afspelen en houd de spatiebalk ingedrukt om een invoersimulatiehand weer te geven.
  2. Verplaats de hand totdat de scrollende collider of een andere interactieve inhoud van het schuiven de focus heeft en activeer de schuifbeweging door met de linkermuis omhoog en omlaag te klikken en te slepen.

Het schuifobject beheren vanuit code

De MRTK-verzameling schuifobjecten maakt een aantal openbare methoden beschikbaar waarmee de schuifcontainer kan worden verplaatst door de positie ervan vast te maken op basis van de configuratie van de pagination eigenschappen.

Een voorbeeld van hoe u toegang krijgt tot de pagineringsinterface voor het scrollen van objectenverzamelingen is beschikbaar voor gebruik in de MRTK/Examples/Demos/ScrollingObjectCollection/Scripts map. Het scrolbare pagineringsscript kan worden gekoppeld aan een bestaande verzameling schuifobjecten in de scène. Naar het script kan vervolgens worden verwezen door scèneonderdelen die Unity-gebeurtenissen weergeven (bijvoorbeeld de MRTK-knop).

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

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

Eigenschappen van de objectverzameling schuiven

Algemeen Beschrijving
Schuifrichting De richting waarin inhoud moet schuiven.
Paginering Beschrijving
Cellen per laag Aantal cellen in een rij in de schuifweergave omhoog en omlaag of het aantal cellen in een kolom in de schuifweergave links/rechts.
Lagen per pagina Aantal zichtbare lagen in het schuifgebied.
Paginacel Afmetingen van de pagineringscel.
Geavanceerde instellingen Beschrijving
Bewerkingsmodus maskeren Bewerk modi voor het definiëren van de grenzen van het knipvak. Automatisch gebruikt automatisch pagineringswaarden. 'Handmatig' maakt directe manipulatie van het knipselvakobject mogelijk.
Collider-bewerkingsmodus Bewerk modi voor het definiëren van de grenzen van de schuifinteractie. Automatisch gebruikt automatisch pagineringswaarden. 'Handmatig' maakt directe manipulatie van de collider mogelijk.
Kan schuiven Hiermee schakelt u schuiven met bijna/ver-interactie in of uit.
Gebruiken bij pre-render Hiermee schakelt u in of de scrollingObjectCollection de gebeurtenis Camera OnPreRender gebruikt om de zichtbaarheid van inhoud te beheren.
Pagineringscurve Animatiecurve voor paginering.
Animatielengte De hoeveelheid tijd (in seconden) die de PaginationCurve nodig heeft om te evalueren.
Schuifdrempel voor handdelta's De afstand, in meters, kan de huidige aanwijzer langs de schuifrichting lopen voordat een schuifslepen wordt geactiveerd.
Touch-afstand vooraan Afstand, in meters, voor de positie van een lokaal xy-vlak dat wordt gebruikt om te controleren of er een aanraakinteractie is gestart aan de voorzijde van de schuifweergave.
Drempelwaarde voor release Neem de hoeveelheid, in meters, op van de schuifgrenzen die nodig zijn om over te schakelen van aanraakaanslag naar vrijgegeven.
Snelheid Beschrijving
Type snelheid Het gewenste type snelheidsval voor de scroller.
Snelheidsvermenigvuldiging De hoeveelheid (extra) snelheid die moet worden toegepast op scroller.
Snelheidsdemping De hoeveelheid val die is toegepast op de snelheid.
Bounce multiplier Vermenigvuldiger om meer bounce toe te voegen aan de overscroll van een lijst bij het gebruik van falloff per frame of falloff per item.
Opties voor foutopsporing Beschrijving
Masker ingeschakeld Zichtbaarheidsmodus van schuifinhoud. Met de standaardwaarde worden alle objecten buiten het schuifgebied gemaskeerd.
Drempelwaardevlakken weergeven Als dit waar is, worden de drempelvlakken voor aanraakrelease weergegeven rond de schuifgrenzen.
Paginering opsporen Gebruik deze sectie om fouten op te sporen in de scroll-paginering tijdens runtime.
Gebeurtenissen Beschrijving
Klik op Wordt geactiveerd wanneer de schuifachtergrond of een van de interactieve inhoud ervan een klik ontvangt.
Bij aanraken gestart Wordt geactiveerd wanneer de schuifachtergrond of een van de interactieve inhoud een aanraking van bijna-interactie ontvangt.
Bij het aanraken is beëindigd Wordt geactiveerd wanneer een actieve aanraakinteractie wordt beëindigd wanneer de aanwijzer voor bijna-interactie een drempelvlak voor loslaten overschrijdt.
Bij het starten van het momentum Wordt geactiveerd wanneer de schuifcontainer begint te bewegen door interactie, snelheidsval of paginering.
Bij het beëindigen van de momentum Wordt geactiveerd wanneer de schuifcontainer stopt met verplaatsen door interactie, snelheidsval of paginering.

Voorbeeldscène schuiven

ScrollingObjectCollection.unity-voorbeeldscène bestaat uit 3 schuifbare voorbeelden, elk met een andere snelheids-falloff-configuratie. De voorbeeldscène bevat wanden om het gedrag van de oppervlakteplaatsing weer te geven die standaard zijn uitgeschakeld in de hiërarchie. De voorbeeldscène vindt u onder de MRTK/Examples/Demos/ScrollingObjectCollection/Scenes map.

Voorbeeldscène van scrolling-objectverzameling

Voorbeeld van prefabs schuiven

Voor het gemak zijn er twee prefabs voor het verzamelen van scrollobjecten beschikbaar. De voorbeeld-prefabs vindt u onder de MRTK/Examples/Demos/ScrollingObjectCollection/Prefabs map.

Scrolling object collection prefabs

Zie ook