L'unité 4.6 - Faire à l'échelle des éléments d'interface à la bonne taille pour chaque résolution
La nouvelle Unité de 4,6 vient avec une nouvelle interface graphique, quand je change de résolution sur l'Unité de l'INTERFACE utilisateur Bouton échelles parfaitement mais quand je l'ai tester sur la Nexus 7 de l'appareil le Bouton est trop petit. Une idée de comment résoudre ce problème?
- je n'ai pas utilisé la nouvelle unité de l'interface, mais dans ngui que l'option est sur l'objet racine de l'interface graphique. Peut-être que l'option est sur la toile. Une autre chose que vous pouvez essayer de régler la résolution de l'écran de jeu vous imé à utiliser. Qui pourrait montrer de l'interface utilisateur plus dans la façon dont elle se penchera sur votre périphérique cible.
Vous devez vous connecter pour publier un commentaire.
L'unité de la nouvelle interface graphique du système utilise des "ancres" pour contrôler la façon dont les éléments d'interface graphique (boutons) de l'échelle par rapport à son conteneur parent.
L'unité a un tutoriel vidéo sur la façon d'utiliser le nouveau "Rect Transformer" composant (où les ancres sont configurés) ici: http://unity3d.com/learn/tutorials/modules/beginner/ui/rect-transform.
La dernière moitié de ce tutoriel est tout au sujet des ancres. Cette page contient des liens vers l'ensemble de la série de tutoriels. Il n'est pas trop long. Vous devriez regarder l'ensemble de la chose.
Spécifiques à votre question:
Les ancres sont visibles dans votre première capture d'écran. Ils sont ces 4 petites flèches en haut à gauche de votre bouton.
Dès maintenant, votre bouton n'est appuyé par des ce coin en haut à gauche.
La droite deux ancres doivent être déplacés vers la droite, de sorte que le bord droit de votre bouton est ancré à un espace à l'intérieur de son conteneur parent.
Selon votre situation, les deux bas flèches peuvent avoir besoin d'être traîné vers le bas de sorte que le bord inférieur de votre bouton est ancré en tant que bien.
La vidéo que j'ai lié ci-dessus couvre tout cela en détail.
Enfin, pour la taille de la police à échelle bien sur différentes résolutions, vous devez ajouter et configurer une référence de résolution à la base de la toile de votre INTERFACE utilisateur, comme la Cendre-Bash32 écrit plus tôt.
Mise à jour: La meilleure façon d'ajouter une Référence de Résolution est par le biais de la fenêtre de l'inspecteur pour la base de la toile dans votre INTERFACE utilisateur.
1) cliquez sur "Ajouter un Composant Bouton" en bas de l'inspecteur.
2) tapez le mot "Référence" dans le champ filtre de recherche.
3) sélectionnez la Référence de "Résolution" de la composante dans les résultats de recherche.
La Référence de la Résolution est maintenant renommé comme Toile Scaler ... avec le changement de nom, ils ont ajouté beaucoup plus de fonctionnalités pour la dynamicité de la Toile. Vous pouvez passer par la L'unité Doc de Toile Scaler et aussi de prendre un coup d'oeil à cet article pour un exemple concret de comment et pourquoi utiliser de la Toile Scaler. Aussi assurez-vous d'utiliser les Points d'Ancrage de la bonne effet de le rendre plus robuste...
À l'Échelle de l'INTERFACE utilisateur ajouté le ReferenceResolution Composante de la Toile, que vous souhaitez mettre à l'échelle.
P. S. Theres pas de Documention pour ReferenceResolution
Si vous souhaitez que le bouton soit de la même taille pour tous les écrans et résolutions, vous devez ajouter la toile scaler composante de la toile et de l'ensemble de l'écran correspond au mode pour: correspond à la largeur ou la hauteur, voici le lien vers les docs, cela aide beaucoup si vous voulez visent à différentes tailles et différentes résolutions:
http://docs.unity3d.com/Manual/HOWTO-UIMultiResolution.html
Cela devient géant et alambiqué une fois que vous commencer à jeter des choses dans le code ET en utilisant une toile scaler, je souhaite donc à fournir un examen approfondi de répondre à sauver quelqu'un de la heures, je suis passé par.
Tout d'abord, ne pas utiliser anchoredPosition à la position de quoi que ce soit, à moins que vous réaliser pleinement, c'est une 0.0 à 1.0 nombre. Utiliser le RectTransform localPosition pour faire le pose, et n'oubliez pas que c'est en relation à la mère d'ancrage. (J'ai dû mettre une grille à partir du centre)
Deuxième, mettre une toile scaler sur le parent de l'objet de mise en page ET l'intérieur de l'interface utilisateur morceaux. On fait la mise en page dans la bonne position, l'autre va redimensionner vos éléments afin qu'ils montrent en haut à droite. Vous ne pouvez pas compter sur les parents, à moins que les enfants ont aussi détartreur (et Graphique Raycasters de les toucher).
Troisième, si vous avez un scaler, N'utilisez PAS l'Écran.la largeur et la hauteur, au lieu d'assumer l'écran est la même valeur que vous avez mis pour le détartreur (j'espère que vous avez utilisé la même, ou de savoir ce que vous faites). La largeur de l'écran retourne toujours l'appareil réel de pixels, la rétine dispositifs de trop, mais la toile scalers NE PAS tenir compte de cela. C'est probablement ce qui donne à l'unité la seule façon de trouver de l'écran dpi si votre jeu le veut. Edit: Ce paragraphe s'applique à tout parent toile connecté au code de faire votre pose. Pas de parasite toiles, vous pouvez probablement les mélanger. Rappelez-vous juste de l'unité de lignes directrices sur la performance avec des toiles.
Quatrième, la toile est encore un peu buggé. Même avec le dessus de travail, certaines choses ne changent pas rendu jusqu'à ce que vous supprimez et recréez une toile, si vous ré-ouvrir la scène ou il se bloque. Sinon, le ci-dessus est l'ensemble des "règles" que j'ai trouvé.
Au centre d'une "grille" des choses que vous ne pouvez pas utiliser la moitié de la toile de redimensionnement de la largeur ou de la hauteur, vous devez calculer la hauteur de votre grille et réglez le décalage par la moitié, sinon il va toujours être un peu hors. Je viens d'ajouter ce que un pourboire supplémentaire. Ce calcul fonctionne pour toutes les orientations.