Donc, je porte un jeu sur Android pour la première fois dans Unity3D. Et j'ai rencontré quelques problèmes en cours de route. Mon problème actuel est que la résolution ne semble pas être correcte, elle coupe les bords de l'écran et mes arrêts de défilement pour faire défiler l'écran gauche / droite ne sont plus au bon endroit.
Après avoir fait un peu de recherche, beaucoup de gens disent que vous devez rendre votre résolution de jeu indépendante pour pouvoir fonctionner sur tous les Androids / Iphone / Ipad. Est-ce vrai? Si oui, comment dois-je procéder? Si ce n'est pas le cas, comment puis-je aider à corriger la résolution afin que lorsque je porte sur des appareils mobiles, cela semble correct?
EDIT: Je n'ai toujours pas vraiment ce dont j'ai besoin, les résolutions ne fonctionnent toujours pas correctement, même avec le code et les astuces énumérés ci-dessous. J'ai besoin d'un moyen pour que la résolution s'ajuste en fonction de l'appareil. Pour une raison quelconque, lorsque j'essaie de récupérer la résolution d'un appareil à l'aide du code de Mungoid, il renvoie 0x0
la source
Réponses:
Un problème que vous rencontrerez avec Android est que chaque appareil différent a sa propre taille d'écran, sa résolution et sa densité de pixels. Si vous voulez que votre jeu soit identique sur tous les appareils, vous avez beaucoup de travail et ne serez probablement jamais satisfait des résultats. Le jeu apparaîtra étiré sur les écrans larges ou compressé sur les écrans autres que les écrans larges. Je vous suggère de décider de ce qui est vraiment important et de laisser glisser quelque chose d'autre.
Sans captures d'écran ni connaissance de votre jeu et de son apparence, nous pouvons tous spéculer sur des solutions, mais nous n'avons pas de direction spécifique pour vous donner des conseils spécifiques.
Dans Unity, vous pouvez accéder aux dimensions de l'écran actuel avec la classe Screen :
Screen.width
etScreen.height
(entre autres propriétés). Vous pouvez ensuite changer la caméra rapport hauteur / largeur de pour modifier ce qui est visible sur vos écrans de différentes tailles en fonction des dimensions de l'écran et de vos attentes personnelles concernant ce qui devrait être visible.Si vous devez vous assurer que les écrans HUD sont correctement mis à l'échelle, vous pouvez le faire en modifiant la matrice de transformation GUI en
OnGUI()
fonction des dimensions de l'écran dans chaque fonction. Je l'ai déjà fait en créant ce script simple et en l'attachant à tout ce qui rendait les éléments de l'interface graphique que je voulais mettre à l'échelle:Ensuite, dans la ou les
OnGUI()
fonctions réelles , je mets tout de suite la matrice de transformation:la source
Screen.width
et.height
en tandem avecCamera.fieldOfView
etCamera.aspect
pour reproduire la même vue sur des tailles d'écran arbitraires. Il suffirait juste de quelques trig pour déterminer spécifiquement comment le faire.vous pouvez essayer quelque chose comme ce qui suit et l'appliquer. Je suppose qu'un appareil mobile ne devrait renvoyer qu'une seule résolution.
Jetez également un œil ici pour plus d'informations sur l'écran dans l'unité http://unity3d.com/support/documentation/ScriptReference/Screen.html
la source