c# user-interface unity3d textarea

c# - GUI.TextArea de escalamiento con tamaño de pantalla



user-interface unity3d (2)

Estoy tratando de escalar una GUI.TextArea.

el bloque de código funciona en la función OnGui. Pero cuando cambio el tamaño de la pantalla, textArea no estará en la posición y el tamaño correctos.

primer tamaño de pantalla

segundo tamaño de pantalla

¿Hay alguna solución como Canvas.ScaleMode.ScaleToFit o debería recrear la GUI.TextArea?

Editar: uso el botón, alguna imagen y texto en el lienzo y los escaneo fácilmente con el script CanvasScaler. Pero el objeto de texto no contiene texto de línea múltiple, así que creo textarea con gui para mostrar texto de varias líneas.


Debería intentar usar nuevas GUI / Lienzos, pero si está decidido a usar la GUI de modo inmediato anterior por alguna razón, puede hacer esto:

public static Vector3 GUIScale{ get{ float normalWidth = 1024; //Whatever design resolution you want float normalHeight = 768; return new Vector3(Screen.width / normalWidth, Screen.height / normalHeight, 1); } } public static Matrix4x4 AdjustedMatrix{ get { return Matrix4x4.TRS(Vector3.zero, Quaternion.identity, GUIScale); } } void OnGUI(){ GUI.matrix = AdjustedMatrix; (... GUI drawing code ...) }

Lo que hará que la GUI siempre ocupe la misma cantidad de pantalla. Funcionará, pero podría verse muy mal en resoluciones más altas y diferentes relaciones de aspecto de pantalla que el "normal" para el que diseña. También tendrá que usar los números de resolución "normal" en lugar de Screen.width y Screen.height al dibujar cosas.


El sistema de UI en la unidad es increíblemente fácil de usar ...

1) haz clic en agregar lienzo ... selecciona "escala con tamaño de pantalla"

¡Importante!

Es fundamental seleccionar "escala con tamaño de pantalla".

(2017 - nota que recientemente cambiaron la redacción de "espacio" a "tamaño" ...)

En Unity5, Unity configuró accidentalmente la opción predeterminada INCORRECTA en ese menú.

Hasta que solucionen el problema, es esencial recordar seleccionar "escala con tamaño de pantalla".

2) haga clic en "Agregar botón", o agregue cualquier elemento que desee: panel. vista de desplazamiento, control deslizante, etc.

Estás completamente hecho.

Es fácil.

Para lograr lo que dices sobre POSICIÓN solo haz esto ...

seleccione el elemento relevante para usted, probablemente el medio.

En tu script tienes

public Text hello

asegúrese de arrastrar a su elemento de Text . Establecer el texto en código es trivial:

hello.text = "some text here";

Es así de simple. Puede establecer el tamaño, la forma, la posición, etc. del tipo en el editor, lo que ve es lo que obtiene.

ASEGÚRESE de configurar los siguientes elementos ...

... como los necesites. Aclamaciones.