Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 15,00€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales
Sign in to follow this  
Gastonspas

Texto Enemigo

Recommended Posts

Hola muy buenas a todos, les vengo ha hacer una consulta como puedo hacer que un texto UI siga a un enemigo en un juego 3D

 

Gracias por leer, espero que haberme explicado correctamente.

Saludos

Share this post


Link to post
Share on other sites
8 hours ago, Gastonspas said:

Hola muy buenas a todos, les vengo ha hacer una consulta como puedo hacer que un texto UI siga a un enemigo en un juego 3D

 

Gracias por leer, espero que haberme explicado correctamente.

Saludos

Tenes que poner al canvas que tiene a tu texto en modo "world space". Las unidades que antes eran pixeles ahora son unidades de Unity, es decir que tenes que encoger el canvas. Esto es para que el canvas viva en el mundo y no pegado a una pantalla, hace como de sprite casi.

Para que lo siga podes meter el canvas (q a su vez tiene el texto adentro) y meterlo dentro del enemigo, entoces el enemigo se mueve y el canvas tambien. O podes hacerlo mediante codigo (mas prolijo a mi gusto), me parece que podes usar el rectTrasnform.position del canvas como un transform.position normal ahora que estas en world space, no recuerdo bien, cuestion de probar.

fijate si anda esto:

using UnityEngine.UI; //<--- agrega esto
                            
//Dentro de la clase
public Transform target;
RectTransform rectT;

public float offsetX = 1;
public float offsetY = 1;

void OnEnable()
{
	rectT = GetComponent<RectTransform>();
}

void Update()
{
	if(target)
    {
      //creo q rectT lo podes cambiar por transform directamente, por las dudas...
    	rectT.position = target.position + Vector3.right* offsetX + Vector3.up * offsetY;	
    }

}
 

 

Share this post


Link to post
Share on other sites
1 hour ago, lightbug said:

Tenes que poner al canvas que tiene a tu texto en modo "world space". Las unidades que antes eran pixeles ahora son unidades de Unity, es decir que tenes que encoger el canvas. Esto es para que el canvas viva en el mundo y no pegado a una pantalla, hace como de sprite casi.

Para que lo siga podes meter el canvas (q a su vez tiene el texto adentro) y meterlo dentro del enemigo, entoces el enemigo se mueve y el canvas tambien. O podes hacerlo mediante codigo (mas prolijo a mi gusto), me parece que podes usar el rectTrasnform.position del canvas como un transform.position normal ahora que estas en world space, no recuerdo bien, cuestion de probar.

fijate si anda esto:


using UnityEngine.UI; //<--- agrega esto
                            
//Dentro de la clase
public Transform target;
RectTransform rectT;

public float offsetX = 1;
public float offsetY = 1;

void OnEnable()
{
	rectT = GetComponent<RectTransform>();
}

void Update()
{
	if(target)
    {
      //creo q rectT lo podes cambiar por transform directamente, por las dudas...
    	rectT.position = target.position + Vector3.right* offsetX + Vector3.up * offsetY;	
    }

}
 

 

Muchas gracias me anduvo perfecto use la manera del canvas 

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...