J'essaie de créer un tableau avec ces exigences:
- Il DOIT être carré.
- Il DOIT s'adapter à la largeur OU à la hauteur disponible.
- Il DOIT être centré dans la toile.
- Il PEUT être emballé dans autant de toiles intermédiaires supplémentaires que nécessaire.
Je joue avec des ancres mais je ne trouve aucune combinaison pour le faire. La seule solution que je puisse penser est de scripter une sorte de "OnResize" du conteneur et de définir la taille de la carte par programme.
Ceci est la disposition d'origine. (1) est le BoardCanvas. (2) est la Commission.
Je veux que si l'écran devient plus grand, le carré grandit, mais est toujours carré:
Ou réduit:
Mais, bien que ces exemples précédents soient accrochés aux bords supérieur et inférieur, je veux également que si l'espace vertical devient plus grand que la largeur disponible, le carré limite sa taille en fonction des bordures gauche et droite:
Q1: Existe - t-il un moyen de le faire avec les ancrages / pivots? C'est ok pour moi de créer des toiles intermédiaires entre BoardCanvas et Board lui-même si cela fonctionne.
Q2: Si oui, où dois-je positionner les ancrages? Ai-je besoin d'objets intermédiaires?
Q3: Sinon, le script est-il la solution? Y a-t-il un OnResize sur la toile à gérer? Je ne vois aucun événement de redimensionnement dans la liste, mais je ne sais peut-être pas où le chercher. Je pense que le tester à chaque image semble un peu exagéré, piloté par les événements semble meilleur.
Merci!
la source
C'est possible, mais avec probablement juste une petite ligne de code ou deux pour définir si l'écran est paysage ou portrait et changer quelques valeurs.
Sur le canevas, vous devez faire en sorte que le "mode échelle Ui" du scaler sur toile soit "échelle avec la taille de l'écran" et que le "mode correspondance écran" soit "largeur ou hauteur correspondante":
En supposant que la résolution de référence par défaut de 800x600 est utilisée, et en supposant que la fenêtre d'affichage de l'écran est paysage (par exemple,
Screen.width
est supérieure àScreen.height
), le curseur de correspondance doit être réglé jusqu'à la hauteur comme1
.Vous allez ensuite vouloir une image sur la toile en utilisant le préréglage d'ancrage central / central. Vous souhaitez également que la largeur et la hauteur de l'image correspondent à la valeur Y de la résolution de référence de votre scaleur de canevas.
Vous pouvez ensuite redimensionner la fenêtre de la caméra et voir que l'image conserve sa forme tout en étirant sa hauteur pour correspondre à la hauteur de la fenêtre:
Si l'écran est en mode portrait - et c'est là que vous devrez probablement coder pour vérifier et / ou modifier au besoin - vous devez définir la valeur de correspondance du scaler
0
et modifier la hauteur et la largeur de votre image pour qu'elles correspondent à la résolution de référence. Valeur X. (dans les images ci-dessous, la largeur et la hauteur de l'image sont les deux800
)Si vous essayez d'ajuster une image plus petite à l'intérieur, vous pouvez "mettre à l'échelle" l'image en ajustant sa largeur et sa hauteur par rapport à la valeur X ou Y de la résolution de référence (en fonction du paysage ou du portrait). Ainsi, par exemple, j'ai créé un carré bleu qui utilise la moitié de la valeur X des résolutions de référence (puisque la fenêtre est portrait), et il évolue et se rétrécit bien:
Et en outre, si vous vouliez un damier ou quelque chose, la position et la hauteur et la largeur X et Y de chaque image peuvent être basées sur un pourcentage de la résolution du scaler de toile pour faire ce que vous voulez:
la source