[Résolu] canvas scaler: scale with screen size, les éléments se redimensionne lorsque je les déplace

Questions à propos du GUI, y compris la partie script.
polmpolm123
Messages : 30
Inscription : 23 Déc 2016 15:15

[Résolu] canvas scaler: scale with screen size, les éléments se redimensionne lorsque je les déplace

Message par polmpolm123 » 06 Juin 2017 10:42

Bonjour,

J'ai un panels (rectangle blanc) et une images (rectangle rouge) qui sont dans un panel à gauche et lorsque je les déplace (pour les mettre à droite) j'en crée une copie et cette copie se redimensionnne et je ne sais pas pourquoi.
Dans le canvas, le composant "canvas scaler" et paramètrer sur "scale with screen size"

Lorsque je mets "constant size pixel" je n'ai aucun problème.

Image

Image
Dernière édition par polmpolm123 le 08 Juin 2017 14:10, édité 2 fois.

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: [DB] canvas scaler: scale with screen size, les éléments se redimensionne lorsque je les déplace

Message par Greg » 06 Juin 2017 11:33

Bonjour,
je note l'effort d'explications mais j'ai rien compris! :P

Par défaut, les éléments UI ont un anchors preset se redimensionnant au parent par rapport à ses ancres.
Pour une 'taille' fixe, il faut cliquer sur le carré en haut à gauche d'un composant RectTransform puis cliquer au milieu sur 'middle center'.
Ceci rend la taille absolu et non plus relative mais aussi la position. Il faudra donc après copie repositionner l’élément et au besoin re-régler ses ancres.
Il est possible d'avoir une taille absolu et un positionnement relatif en mettant toujours l'anchor preset sur 'middle center' et en ajoutant un composant horizontal ou vertical layout group sur le parent afin d'aligner les enfants comme dans un tableau.

Le problème vient sans doute du fait que tu fais ta copie dans un parent différent.

Ne pas faire la copie par copié/collé (ctrl+c, ctrl+v), normalement par duplication (ctrl+d) ou par script cela fonctionne.
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

polmpolm123
Messages : 30
Inscription : 23 Déc 2016 15:15

Re: [DB] canvas scaler: scale with screen size, les éléments se redimensionne lorsque je les déplace

Message par polmpolm123 » 07 Juin 2017 17:23

Bonjour,

Le panel gauche à ses encres tous en haut et tous en bas (top-scretch) et j'ai rajouté un vertical layout group.
J'ai mis les encres du rectangle rouge comme vous me l'avez dit en middle center, mais des que je clique sur middle center il revienne en top-left.

Le bout de code me permettant de copier un objet

Code : Tout sélectionner


public void OnBeginDrag(PointerEventData eventData)
{
   Transform lePanelDeGauche  = gameObject.transform.parent;
   GameObject clone = Instantiate(gameObject, gameObject.transform.position, Quaternion.identity) as GameObject;
   clone.name = gameObject.name;
   clone.transform.SetParent(lePanelDeGauche);   

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: [DB] canvas scaler: scale with screen size, les éléments se redimensionne lorsque je les déplace

Message par Greg » 08 Juin 2017 02:21

Alors pour le positionnement c'est normal. Dans le cas où un layout group se trouve sur le parent, c'est celui-ci qui gère les positions des enfants. On ne peut donc plus accéder qu'aux dimensions sur ces derniers.

Pour le code, je te propose de crée si ce n'est fait un dossier 'Resources' dans ton projet (le nom est important, c'est un fichier spécial pour Unity)
Ensuite, une fois le panel rouge configuré sur la scène, le faire glisser dans le fichier Resources (éventuellement dans Resources > UiPrefabs > monPanel ça fonctionne) pour en faire un prefab chargeable dynamiquement.
Ensuite pour le code :

Code : Tout sélectionner

// Instantiate panel.
GameObject clone = Instantiate(Resources.Load("UIPrefabs/monPanel") as GameObject, transform.position, transform.rotation);
// Assign parent.
clone.GetComponent<RectTransform>().SetParent(lePanelDeGauche.transform, false);
:merci:
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)


Répondre

Revenir vers « L'interface GUI »