Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

dudas sobre la posición de los UI

Iniciado por gregory gregory, Mayo 14, 2017, 01:29:31 AM

Tema anterior - Siguiente tema
Mayo 14, 2017, 01:29:31 AM Ultima modificación: Mayo 15, 2017, 08:03:21 AM por pioj
hola amigos he estado buscando por un largo rato  sobro las posiciones de los UI pero no he podido encontrar bien la posicion de los UI,  en el script que he hecho solo toma el transform por así decir y creo que los UI por lo que entiendo trabaja con RectTransform      "pos x pos y  pos z o  left y top" en lo que trata de las posiciones del canvas creo que es así, si  no  corríjanme si me equivoco    bueno el punto es que en el script la posición la toma de la escena y yo quiero que tome la posición  dentro del canvas sin que pierda la  posición por la resolución oh bueno  solo la primera que tome la posición dentro  canvas  la UI que quiero que tenga una posición en el script es un Text  bueno agradecería mucho que me ayudaran  
 

public RectTransform rect1;
public string nombreGO;
public float x=40f;
public  float y=0f;
void Start () {
}
void Update () {
       
        rect1=GameObject.Find(nombreGO).GetComponent<RectTransform>();
        rect1.anc***dPosition = new Vector2(x, y);
    }
}

 
 

Primero de todo, asegúrate que el render mode del canvas es Screen Space Overlay. Después, las cosas están dentro de un canvas tienen una alineación en el rect transform, para asignarla por script debes usar anchorMin, anchorMax y pivot. Para alinearlo en el centro sería así: 
 

   rect1.anchorMin = new Vector2(0.5f, 0.5f);
    rect1.anchorMax = new Vector2(0.5f, 0.5f);
    rect1.pivot = new Vector2(0.5f, 0.5f);
rect1.anc***dPosition = new Vector2(x, y);

 
Espero que con esto lo soluciones.
 
 
 
Dos cosas importantes de tu código:
 
- No debes meter un Find y GetComponent en el Update. La primera linea del update puede ir al Start sin problemas, si ya lo has buscado una vez para que quieres buscarlo en cada frame? La variable ya está asignada.
 
- Si no vas a modificar la posición del elemento durante toda la partida, lo normal es que asignar la posición también vaya en el start (aunque si fuera así lo lógico sería ajustar la posición desde el editor y listos...)
 
 
 
Saludos

Mayo 16, 2017, 12:45:25 AM #2 Ultima modificación: Mayo 16, 2017, 12:52:08 AM por gregory gregory
ok gracias es que trato de hacer es que el UI se posicione en un lugar determinado en cierto tiempo  y lo del update es eso muchas gracias amigo por ayudarme en este problema que tenia 

Etiquetas: