Défilement de la collection d’objets

Défilement de la collection d’objets

La collection d’objets de défilement MRTK est un composant d’expérience utilisateur qui permet de faire défiler le contenu 3D dans une zone affichable contenue. Le mouvement de défilement peut être déclenché par une interaction d’entrée near ou FAR et par une pagination discrète. Il prend en charge les objets interactifs et non interactifs.

Prise en main de la collection d’objets de défilement

Configuration de la scène

  1. Créer une nouvelle scène Unity.
  2. Ajoutez MRTK à la scène en accédant à la boîte à outils de réalité mixte > Ajouter à Scene et configurer.

Configuration de l’objet de défilement

  1. Créez un objet de jeu vide dans la scène et remplacez sa position par (0, 0, 1).

  2. Ajoutez un composant de collection d’objets de défilement à l’objet de jeu.

    Lorsque la collection d’objets de défilement est ajoutée, un conflit de cases et un composant touchable near-interaction sont automatiquement attachés à l’objet de jeu racine. Ces composants permettent à l’objet Scroll d’écouter des événements d’entrée d’interaction near et Far, comme un pointeur tactile ou un clic.

    La collection d’objets de défilement MRTK comporte deux éléments importants qui sont créés en tant qu’objets de jeu enfants dans la hiérarchie d’objets de défilement racine :

    • Container -Tous les objets de contenu de défilement doivent être des enfants de l’objet de jeu de conteneurs.
    • Clipping bounds -Si le masquage du contenu de défilement est activé, l’élément de limites de découpage garantit que seul le contenu défilant à l’intérieur de ses limites est visible. L’objet de jeu limites de découpage a deux composants : un conflit de case désactivé et une zone de découpage.

Défilement des éléments de la collection d’objets

Ajout de contenu à l’objet de défilement

La collection d’objets de défilement peut être combinée avec une collection d’objets Grid pour mettre en forme le contenu dans une grille d’éléments alignés dont la taille et l’espacement sont uniformes.

  1. Créez un objet de jeu vide en tant qu’enfant du conteneur de défilement.
  2. Ajoutez un composant de collection d’objets Grid à l’objet de jeu.
  3. Pour un défilement vertical à une seule colonne, sous l’onglet inspecteur, configurez la collection d’objets Grid comme suit :
    • Nombre de colonnes: 1
    • Disposition: colonne puis ligne
    • Ancrer: en haut à gauche
  4. Modifiez la largeur et la hauteur des cellules en fonction des dimensions des objets de contenu.
  5. Ajoutez les objets de contenu en tant qu’enfants de l’objet Grid.
  6. Appuyez sur mettre à jour la collection.

Disposition de la grille

Important

Tout élément de contenu de défilement doit utiliser le nuanceur standard MRTK pour que l’effet de découpage sur la zone affichable fonctionne correctement.

Notes

Si le masquage du contenu de défilement est activé, la collection d’objets de défilement ajoute un composant d' instance de matériau à tous les objets de contenu auxquels un convertisseur est attaché. Ce composant est utilisé pour gérer la durée de vie des matériaux instanciés et améliorer les performances de la mémoire.

Configuration de la zone affichable du défilement

  1. Pour le défilement vertical au sein d’une seule colonne d’objets, dans l’onglet inspecteur, configurez la collection d’objets de défilement comme suit :
    • Cellules par niveau: 1
    • Choisir le nombre de niveaux par page en fonction du nombre de lignes visibles souhaité
  2. Modifiez la largeur, la hauteur et la profondeur des cellules de la page en fonction des dimensions des objets de contenu.

Notez que les objets de contenu situés en dehors de la zone affichable par défilement sont désormais désactivés, tandis que les objets qui croisent le filaire de défilement peuvent être partiellement masqués par la primitive de découpage.

Zone affichable

Test de la collection d’objets de défilement dans l’éditeur

  1. Appuyez sur la touche lecture et maintenez la barre d’espace pour afficher une main de simulation d’entrée.
  2. Déplacez la main jusqu’à ce que le conflit de détourage ou le contenu interactif de défilement soit activé et déclenchez le mouvement de défilement en cliquant et en faisant glisser le curseur vers le haut et vers le haut avec la souris gauche.

Contrôle de l’objet de défilement à partir du code

La collection d’objets de défilement MRTK expose quelques méthodes publiques qui permettent de déplacer le conteneur de défilement en alignant sa position en fonction de la pagination Configuration des propriétés.

Un exemple d’accès à l’interface de pagination de la collection d’objets de défilement peut être utilisé dans le MRTK/Examples/Demos/ScrollingObjectCollection/Scripts dossier. L’exemple de script de pagination avec défilement peut être lié à une collection d’objets de défilement existante dans la scène. Le script peut ensuite être référencé par des composants de scène exposant des événements Unity (par exemple, le bouton MRTK).

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

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

Propriétés de la collection d’objets de défilement

Général
Sens de défilement Sens dans lequel le contenu doit défiler.
Pagination Description
Cellules par niveau Nombre de cellules d’une ligne dans l’affichage de défilement vers le haut ou le nombre de cellules dans une colonne dans l’affichage de défilement de gauche à droite.
Niveaux par page Nombre de niveaux visibles dans la zone de défilement.
Cellule de page Dimensions de la cellule de pagination.
Paramètres avancés Description
Mode d’édition de masque Modes de modification permettant de définir les limites de masquage de la zone de découpage. Choisissez « auto » pour utiliser automatiquement les valeurs de pagination. Choisissez « manuel » pour activer la manipulation directe de l’objet de la zone de découpage.
Mode d’édition d’un conflit Modes de modification permettant de définir les limites de collision d’interaction de défilement. Choisissez « auto » pour utiliser automatiquement les valeurs de pagination. Choisissez « manuel » pour permettre la manipulation directe du conflit.
Peut faire défiler Active/désactive le défilement avec une interaction proche/éloignée.
Utiliser lors du pré-rendu Indique si le scrollingObjectCollection utilise l’événement OnPreRender de l’appareil photo pour gérer la visibilité du contenu.
Courbe de pagination Courbe d’animation pour la pagination.
Longueur de l’animation Durée (en secondes) nécessaire à l’évaluation de PaginationCurve.
Seuil de défilement Delta à la main Distance, en mètres, du pointeur actuel peut se déplacer le long de la direction de défilement avant de déclencher un glissement de défilement.
Distance avant pression Distance, en mètres, pour positionner un plan XY local utilisé pour vérifier si une interaction tactile a démarré à l’avant de la vue de défilement.
Seuil de mise en sortie Retirez le montant, en mètres, des limites de défilement nécessaires pour passer de la touche Touch engagée à la version finale.
Vélocité Description
Type de vélocité Type souhaité de retrait de vitesse pour le défilement.
Multiplicateur de vélocité Quantité de vélocité (supplémentaire) à appliquer au défilement.
Vélocité de vélocité Quantité de retrait appliqué à la vélocité.
Multiplicateur de rebond Multiplicateur pour ajouter plus de rebond au défilant d’une liste lors de l’utilisation de l’atténuation par image ou de la dépassement par élément.
Options de débogage Description
Masque activé Mode de visibilité du contenu de défilement. La valeur par défaut masque tous les objets en dehors de la zone d’affichage de défilement.
Afficher les plans de seuil Si la valeur est true, l’éditeur restitue les plans de seuil de libération tactile autour des limites de défilement.
Pagination de débogage Utilisez cette section pour déboguer la pagination de défilement pendant l’exécution.
Événements Description
En cas de clic Événement déclenché lorsque le conflit d’arrière-plan de défilement ou l’un de ses contenus interactifs reçoit un clic.
Démarrage tactile Événement déclenché lorsque le conflit d’arrière-plan de défilement ou l’un de ses contenus interactifs reçoit une pression tactile proche de l’interaction.
À la saisie tactile terminée Événement déclenché lorsqu’une interaction tactile active est terminée en faisant passer le pointeur d’interaction proche de l’un des plans de seuil de mise en sortie.
Au démarrage du momentum Événement déclenché lorsque le déplacement du conteneur de défilement commence par interaction, vélocité fallofff ou pagination.
À la fin de l’inertie Événement déclenché lorsque le conteneur Scroll cesse de se déplacer par interaction, vélocité fallofff ou pagination.

Exemple de scène de défilement

La scène de l’exemple ScrollingObjectCollection. Unity est composée de 3 exemples de défilement, chacun avec une configuration d’atténuation de vélocité différente. L’exemple de scène contient des murs pour montrer le comportement de positionnement de la surface qui est désactivé par défaut dans la hiérarchie. L’exemple de scène se trouve sous le MRTK/Examples/Demos/ScrollingObjectCollection/Scenes dossier.

Exemple de scène de collection d’objets de défilement

Exemple de défilement prefabs

Pour plus de commodité, deux prefabs de collection d’objets de défilement peuvent être utilisés. L’exemple prefabs se trouve dans le MRTK/Examples/Demos/ScrollingObjectCollection/Prefabs dossier.

Défilement de la collection d’objets prefabs

Voir aussi