Noticias

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

como mostrar texto en C# ??

Iniciado por Lucky-chan, Febrero 28, 2017, 09:13:22 PM

Tema anterior - Siguiente tema
Febrero 28, 2017, 09:13:22 PM Ultima modificación: Marzo 01, 2017, 11:05:21 PM por pioj
pues eso, he estado intentando mostrar texto cuando la jugadora toque una escultura o al acercarse a un npc o al entrar a una nueva zona,
 
ya c como poner colliders y collider trigger y todo eso, lo único que necesito es saber como hacer aparecer mágicamente el texto :U
 
esto es lo que he hecho, suponiendo que sea algo así claro :V
 

using System.Collections;
using UnityEngine;
using unityEngine.UI;
public class texto : MonoBehaviour {
    
    public string Text
    void OnTriggerEnter (Collider other)
    {
        Text ("que decir?"); //es asi de facil :u? no lo creo 
    }

 
 

Puedes hacerlo de 2 formas crear un texto desde 0 o mostrar uno ya hecho y solo activarlo, yo hago la 2da debes de crear un canvas y acceder a el para activarlo, lo que haces es simplemente crear una variable de tipo string, para que le des el valor de dicha variable al texto es otra cosa, primero debes crear un canvas despues asignarle el texto debes importar un libreria unityengine.ui, despues creas una variable pública de tipo Text y accedes a su texto así vease un ejm:
 

using....
using ....
using UnityEngine.UI;//esto es lo importante
public class SDHG:MonoBeha..{
public Text texto;
private void Start()
{
String kl ="hola";
texto..text=kl;
}
}

 
Lamento no ser claro pero estoy ocupado, respondere en la noche pero te e dado puntos clave, solo investiga.

Cita de: ytinU date=1488313581Puedes hacerlo de 2 formas crear un texto desde 0 o mostrar uno ya hecho y solo activarlo, yo hago la 2da debes de crear un canvas y acceder a el para activarlo, lo que haces es simplemente crear una variable de tipo string, para que le des el valor de dicha variable al texto es otra cosa, primero debes crear un canvas despues asignarle el texto debes importar un libreria unityengine.ui, despues creas una variable pública de tipo Text y accedes a su texto así vease un ejm:
   
   

using....
using ....
using UnityEngine.UI;//esto es lo importante
public class SDHG:MonoBeha..{
public Text texto;
private void Start()
{
String kl ="hola";
texto..text=kl;
}
}

   
      Lamento no ser claro pero estoy ocupado, respondere en la noche pero te e dado puntos clave, solo investiga.
   


no hay problema, eso es de mucha ayuda, igualmente experimentare por mientras a ver si logro hacer aparecer una ventana ;P

A ver primero tienes que crear la UI; Para ello vas a la Hierarchy/Create/UI/Text.
 
Se te creará un Canvas y dentro un objeto del tipo Text
 
Despues solo tienes que acceder a la propiedad 'text' desde cualquier script. 
 
Por Ejemplo :

 
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; //Especificamos que estamos usando la UI
public class PruebaTexto : MonoBehaviour {
    public Text texto;//El objeto texto previamente creado.
    void Start () {
        texto.text = "Hola mundo"; //Accedemos a la propiedad 'text'
    }
}

 
Para mostrar una ventana detras del texto creas una imagen Hierarchy/Create/UI/Image y haces el objeto text hijo de la imagen. Así es como quedaría.
 

 
Lo demás es ajustar y probar hasta que cuadre todo. Para mostrarlo y ocultarlo utilizas GameObject.SetActive(true) y GameObject.SetActive(false);
 
 

Cita de: Samusan date=1488316514A ver primero tienes que crear la UI; Para ello vas a la Hierarchy/Create/UI/Text.
   
   
      Se te creará un Canvas y dentro un objeto del tipo Text
   
   
      Despues solo tienes que acceder a la propiedad 'text' desde cualquier script. 
   
   
      Por Ejemplo :

       
   
   

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; //Especificamos que estamos usando la UI
public class PruebaTexto : MonoBehaviour {
    public Text texto;//El objeto texto previamente creado.
    void Start () {
        texto.text = "Hola mundo"; //Accedemos a la propiedad 'text'
    }
}

   
      Para mostrar una ventana detras del texto creas una imagen Hierarchy/Create/UI/Image y haces el objeto text hijo de la imagen. Así es como quedaría.
   
   
      
   
   
      Lo demás es ajustar y probar hasta que cuadre todo. Para mostrarlo y ocultarlo utilizas GameObject.SetActive(true) y GameObject.SetActive(false);
   
   
       
   


ooh muchas gracias compañero ^w^

Marzo 04, 2017, 08:56:42 AM #5 Ultima modificación: Marzo 04, 2017, 09:00:25 AM por kaito
Para utilizar la interfaz UI de forma 3D, necesitas establecer en el componente Canvas el Render Mode como WorldSpace.
 
Al GameObject Canvas(donde se encuentra el componente Canvas, CanvasScaler y GraphicRaycaster) emparentas los objetos 3D(mallas). Y a estos objetos 3D emparentas el Text. De esta forma el texto UI se moverá junto a la malla. Solo tendrás que corregir la posición local dentro del GameObject parent.
 
He creado este script para mostar el texto 3D con un fade-in y un fade-out, y para poder rotarlo hacia la posición del player solo en su eje Y.
 

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class TriggerUI : MonoBehaviour {
    public Transform target;
    public Collider UICollider;
    public Graphic[] UIGraphic;
    public bool targetLookAt = false;
    public float timeFade = 0f;
   
    float fade = 0f;

// Update is called once per frame
void FixedUpdate () {
        bool state = this.UICollider.bounds.Contains(this.target.position);
        if (state)
        {
            if (this.fade <= this.timeFade)
            {
                if (this.fade <= 0f)
                {
                    this.fade = 0f;
                    foreach (Graphic graphic in this.UIGraphic)
                    {
                        graphic.enabled = true;
                    }
                }
                this.fade += Time.fixedDeltaTime;
                float alfa;
                if (this.timeFade <= 0f)
                {
                    alfa = 1f;
                }
                else
                {
                    alfa = this.fade / this.timeFade;
                }
                foreach (Graphic graphic in this.UIGraphic)
                {
                    Color color = graphic.color;
                    color.a = alfa;
                    graphic.color = color;
                }                      
            }
            if (this.targetLookAt)
            {
                foreach (Graphic graphic in this.UIGraphic)
                {
                    Vector3 position = target.position;
                    position.y = this.transform.position.y;
                    graphic.transform.rotation = Quaternion.LookRotation(this.transform.position - position);
                }  
            }
        }
        else
        {
            if (this.fade >= 0f)
            {  
                this.fade -= Time.fixedDeltaTime;
                if (this.fade <= 0f)
                {
                    foreach (Graphic graphic in this.UIGraphic)
                    {
                        graphic.enabled = false;
                    }
                }
                else
                {
                    float alfa;
                    if (this.timeFade <= 0f)
                    {
                        alfa = 0f;
                    }
                    else
                    {
                        alfa = this.fade / this.timeFade;
                    }
                    foreach (Graphic graphic in this.UIGraphic)
                    {
                        Color color = graphic.color;
                        color.a = alfa;
                        graphic.color = color;
                    }
                }
            }  
        }      
}  
}

 
El componente Text y el componente Image derivan de la clase Graphic de UnityEngine.UI. De este modo puedes acceder a diferentes tipos de componente UI como imágenes y texto con los que compones la interfaz UI, a modo ventana.
 
 
 
 
 
//www.unityspain.com/applications/core/interface/file/attachment.php?id=10305">UI3D.unitypackage

Etiquetas: