web-dev-qa-db-fra.com

Impossible de déplacer le canevas ou de modifier les valeurs de transformation

J'utilise Unity 5 et j'ai commencé à créer une scène de menu. Lorsque j'ai créé le canevas, toutes les valeurs du composant Rect Transform sont verrouillées et il est indiqué "certaines valeurs générées par Canvas". La seule chose que je peux changer est la position z lorsque vous utilisez le gizmo dans l'éditeur. Je ne peux pas réinitialiser la position ou quoi que ce soit. Pourquoi cela se passe-t-il?  Screenshot

7
dsiegler19

Cela signifie que render mode est défini sur Screen space - overlay dans le composant de toile de la toile. Cela oblige à être à la taille de l'écran. Changez-le en World Space et cela vous permettra de le redimensionner et de le déplacer.

10
Danny Herbert

Changer le mode de rendu n'est pas une solution idéale; Le mode superposition n'est pas non plus la raison pour laquelle cela se produit. World Space est simplement un mode de rendu qui modifie le comportement de votre interface utilisateur entière et impliquerait une configuration totalement différente et beaucoup plus de travail simplement pour qu'un objet d'interface utilisateur enfant se déplace indépendamment.

Voici la description de World Space à partir du site Unity:

Dans ce mode de rendu, le canevas se comportera comme tout autre objet de la scène. La taille du canevas peut être définie manuellement à l'aide de sa transformation Rect. Les éléments d'interface utilisateur s'affichent devant ou derrière d'autres objets de la scène en fonction de leur placement 3D. Ceci est utile pour les interfaces utilisateur censées faire partie du monde. Ceci est également connu comme une «interface diégétique».

La transformation Rect est généralement verrouillée car il s'agit d'un enfant d'un autre objet Canvas qui contrôle ses transformations. Pour résoudre ce problème, écrasez-le en ajoutant un composant «Layout Element». À partir de là, vous pouvez le configurer pour qu'il fonctionne comme vous le souhaitez et il peut avoir des transformations indépendantes de l'objet d'interface utilisateur parent.

Pour plus de détails, voir cette page de support Unity: https://support.unity3d.com/hc/en-us/articles/115000179163-How-to-overwrite-Width-and-Height-values-that-are- piloté par un Layout Group en cours d'exécution -

3
Mike Brockbank