Objectverzameling schuiven — MRTK2
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
- Maak een nieuwe eenheidsscène.
- Voeg MRTK toe aan de scène door te navigeren naar de Mixed Reality Toolkit>Toevoegen aan scène en configureren.
Het schuifobject instellen
Maak een leeg gameobject in de scène en wijzig de positie in (0, 0, 1).
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.
-
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.
- Maak een leeg gameobject als onderliggend element van de schuifcontainer.
- Voeg een rasterobjectverzamelingsonderdeel toe aan het gameobject.
- 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
- Wijzig de celbreedte en -hoogte op basis van de afmetingen van de inhoudsobjecten.
- Voeg de inhoudsobjecten toe als onderliggende elementen van het rasterobject.
- Druk op Verzameling bijwerken.
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
- 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
- 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.
De verzameling schuivende objecten in de editor testen
- Druk op afspelen en houd de spatiebalk ingedrukt om een invoersimulatiehand weer te geven.
- 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.
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.