Positionnement Gui.TextFiel

Questions à propos du GUI, y compris la partie script.
royalskunk
Messages : 163
Inscription : 30 Juin 2010 00:53

Positionnement Gui.TextFiel

Message par royalskunk » 16 Mai 2011 15:56

Bonjours a tous,
encore un petit soucis ;)
alors voila, j’utilise du Gui.TextFiel et j'aimerais utilisé le positionnement selon la résolution de l'application,
voila mon code:

var customSkin : GUISkin;
static var stringToEdit : String = "";
var passwordToEdit : String = "My Password";
var areaWidth : float;
var areaHeight : float;

function Start (){
stringToEdit=(PlayerPrefs.GetString("Player Name"));
}
function OnGUI () {
GUI.skin = customSkin;
// Make a text field that modifies stringToEdit.
var ScreenX = ((Screen.width * 0.5) - (areaWidth * 0.5));
var ScreenY = ((Screen.height * 0.5) - (areaHeight * 0.5));
stringToEdit = GUI.TextField (Rect (ScreenX, ScreenY, areaWidth, areaHeight), stringToEdit, 10);
passwordToEdit = GUI.PasswordField (Rect (ScreenX, ScreenY+50, areaWidth, areaHeight), passwordToEdit, "*"[0], 15);
}

cela fonctionne mais dès que je dépasse le milieu de l'écran ma saisie de texte disparait ? une idée ?

Avatar de l’utilisateur
kealkeal
Messages : 925
Inscription : 16 Juil 2010 17:31
Localisation : Paris

Re: Positionnement Gui.TextFiel

Message par kealkeal » 26 Mai 2011 12:15

Je suis aussi intéresse par une réponse à ce problème.

Si quelqu'un pouvait nous aider .... ;)
kealkeal

Avatar de l’utilisateur
kealkeal
Messages : 925
Inscription : 16 Juil 2010 17:31
Localisation : Paris

Re: Positionnement Gui.TextFiel

Message par kealkeal » 30 Mai 2011 16:21

Personne pour nous aider ?? :roll:

Merci ! ;)
kealkeal

Avatar de l’utilisateur
Birdace
Messages : 23
Inscription : 29 Mai 2011 15:52

Re: Positionnement Gui.TextFiel

Message par Birdace » 30 Mai 2011 16:50

Perso, pour les différentes résolutions, j'utilise ça :
private var x : float;
private var y : float;
private var sWidth : float;
private var sHeight : float;

function Start() {

sWidth = Screen.width;
sHeight = Screen.height;
x = sWidth/1920;
y = sHeight/1080;

title.fontSize = 35*y;
}
Et après, lorsque j'affiche mes textures, je multiplie par mon ratio :

Code : Tout sélectionner

GUI.DrawTexture(Rect(100*x,50*y,1920*x,1080*y), fondCommun);
Sachant que tous mes éléments sont crées selon une résolution de 1920/1080 à la base.
Voilà en espérant que ça t'aide. ;)

Avatar de l’utilisateur
kealkeal
Messages : 925
Inscription : 16 Juil 2010 17:31
Localisation : Paris

Re: Positionnement Gui.TextFiel

Message par kealkeal » 30 Mai 2011 17:22

Salut,

Merci pour ton aide.

Le probleme c'est que j'utilise un GUI Text et que je n'ai pas la possibilité de mettre ce code :

Code : Tout sélectionner

GUI.DrawTexture(Rect(100*x,50*y,1920*x,1080*y), fondCommun);
:(

Une autre solution ? :roll:
kealkeal

Avatar de l’utilisateur
Birdace
Messages : 23
Inscription : 29 Mai 2011 15:52

Re: Positionnement Gui.TextFiel

Message par Birdace » 30 Mai 2011 18:38

Tu peux utiliser un GUI.TextField aussi, non ? Pourquoi tu à choisis GUI Text, là ?

Parce que avec un GUI.TextField tu remplace juste :

Code : Tout sélectionner

GUI.DrawTexture(Rect(100*x,50*y,1920*x,1080*y), fondCommun);
par :

Code : Tout sélectionner

stringToEdit = GUI.TextField (Rect(100*x,50*y,1920*x,1080*y), stringToEdit, 10);

royalskunk
Messages : 163
Inscription : 30 Juin 2010 00:53

Re: Positionnement Gui.TextFiel

Message par royalskunk » 30 Mai 2011 18:41

pour régler mon problème j'utilise les layouts

var customSkin : GUISkin;
static var stringToEdit : String = "";
static var passwordToEdit : String = "";
var areaWidth : float;
var areaHeight : float;

var guiDepth : int = 0;


function OnGUI () {
GUI.skin = customSkin;
GUI.depth = guiDepth;

var ScreenX = ((Screen.width* 0.5) - (areaWidth * 0.5)+50);
var ScreenY = ((Screen.height* 0.5) - (areaHeight * 0.5)+65);

GUILayout.BeginArea (Rect (ScreenX,ScreenY+4, 130, 100));
stringToEdit = GUILayout.TextField ( stringToEdit, 11);
passwordToEdit = GUILayout.PasswordField ( passwordToEdit, "*"[0], 11);
GUILayout.EndArea();
}

Répondre

Revenir vers « L'interface GUI »