He estado buscando algo que debería ser simple, pero la documentación de Unity 5 al respecto está bastante desactualizada. Lo que quiero lograr es poder crear el texto de la interfaz de usuario totalmente desde el script, es decir, de forma totalmente dinámica; en mi aplicación de caso real, lo haré en un bucle de un número de iteraciones no predefinido.
Una búsqueda usando Google encontrará muchos ejemplos sobre cómo hacerlo, pero todos los que vi usar métodos que ya están en desuso (son anteriores a Unity versión 5) o simplemente están equivocados (no es sorpresa aquí ...). Ya sé que primero debería agregar un Canvas a mi proyecto, luego debería incluirlo using UnityEngine.UI
en mi código C # y también podría declarar un texto de UI como Text _guitext
.
Sin embargo, el siguiente código no funciona. Quiero decir, no es que se cuelgue, sino que no se muestra nada:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class MyClass: MonoBehaviour {
Text _guitext;
// Use this for initialization
void Start () {
_guitext.text = "testing";
}
// Update is called once per frame
void Update () {
}
}
Peor que eso, parece que mientras se juega el juego, no aparece ningún objeto nuevo en la lista de jerarquía de objetos.
¿Podría por favor señalarme en la dirección correcta aquí? Gracias.
Text' does not contain a definition for
texto 'y ningún método de extensióntext' of type
Texto' podría encontrarse (¿le falta una directiva de uso o una referencia de ensamblaje?)using UnityEngine.UI
el comienzo del guión?1 ¿quieres decir que quieres cambiar el uitext dinámicamente?
Si quieres cambiarlo, primero debes adjuntar tu script al objeto del juego. Luego une tus variables. Los tutoriales se pueden encontrar aquí.
2 Si desea crear uitext que no esté en la Jerarquía de antemano.
Podrías usar GUI . Etiqueta GUI
Ponga las instancias creadas en OnGUI. Es como la actualización que se llama cada cuadro.
3 En realidad, la segunda respuesta no crea un objeto uitext.
Pero logrará los mismos resultados. Si realmente quieres el objeto uitext en lugar de los efectos. U puede hacerlo en un prefabricado e iniciarlo en tiempo de ejecución. Sin embargo, el uitext debe ser hijo del lienzo.
fuente
Si está buscando una solución rápida y sucia para la depuración, aún puede usar la antigua solución de Unity 4. Implemente el
OnGUI
evento de cualquier MonoBehavior que siempre haya activado para llamar a la clase GUI para agregar algún elemento de la IU al marco de representación actual.Si desea utilizar el lienzo, debe agregar un script al lienzo que:
GUIText
objeto de juegotransform
lienzofuente