[Résolu] NGUI et replacement dynamique

Questions à propos du GUI, y compris la partie script.
Sylvaner
Messages : 7
Inscription : 16 Mars 2012 02:31

[Résolu] NGUI et replacement dynamique

Message par Sylvaner » 23 Avr 2014 16:17

Bonjour,

J'ai un petit problème de replacement d'éléments avec NGUI et je me disais que peut être certaines personnes étaient passées par là et aurais une indication sur la voie à prendre.

J'ai un texte de taille variable (UILabel multiline) avec en dessous une image (UISprite) et un autre texte (UILabel). Le tout est contenu dans un "Draggable Panel".

J'aimerais modifier dynamiquement le premier texte et que les éléments suivants soient collé à lui.

Un petit schéma :
Image
  • 1 : Au départ
  • 2 : Mon résultat
  • 3 : Ce que je voudrais
J'ai donc essayé à partir de plusieurs informations (relative size, taille du Box Collider) mais je n'arrive pas à trouver comment calculer la nouvelle position des élements suivants.

Quelqu'un a-t-il une idée ?
Dernière édition par Sylvaner le 24 Avr 2014 00:43, édité 1 fois.

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: NGUI et replacement dynamique

Message par cayou66 » 23 Avr 2014 17:24

Salut,
essaye le script UIAnchor, tu peux lui mettre en target un autre transform plutôt que la caméra.
Ensuite si ton image a son centre en top center ça devrait marcher comme tu le penses.
Et pareil pour ton label en dessous, avec comme target du UIAnchor l'image.

Avatar de l’utilisateur
yoyoyaya
Messages : 1656
Inscription : 30 Mai 2011 13:14
Localisation : PAAAAARTOUUUU
Contact :

Re: NGUI et replacement dynamique

Message par yoyoyaya » 23 Avr 2014 17:32

Comme cayou, les ancres devraient le faire.

Sinon, vite fait par script, (c'est moche mais ...) ça semble marcher avec quelque chose comme ça :

Code : Tout sélectionner

b.transform.localPosition = new Vector3(0, a.transform.localPosition.y - (a.transform.localScale.y * 0.5f) - (b.transform.localScale.y * 0.5f) - (a.relativeSize.y * (a.transform.localScale.y * 0.5f)), 0);
"a" est le label avec pivot au centre.
"b" est la texture avec pivot au centre.
ImageImage

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: NGUI et replacement dynamique

Message par cayou66 » 23 Avr 2014 17:44

J'avais aussi fait à l'époque (ignorant que j'étais) un système qui utilisait la taille des objets NGUI pour positionner d'autres objets de manière relative.
J'utilisais les fonctions dans NGUI pour calculer en pixel la taille des objets (fonction qui a changé 20 fois de nom et de classe...).

Sylvaner
Messages : 7
Inscription : 16 Mars 2012 02:31

Re: NGUI et replacement dynamique

Message par Sylvaner » 24 Avr 2014 00:43

Merci beaucoup, en effet UIAnchor permet de "s'accrocher" à un autre élément. C'est super.

Répondre

Revenir vers « L'interface GUI »