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 58,34€ 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  
Braltor

[SOLUCIONADO] Convertir posición 3D a posición en Canvas

Recommended Posts

Hola amigos, estoy intentando colocar un texto de puntaje sobre un objeto en 3D, usando el UI.

Supuse que RectTransformUtility.ScreenPointToLocalPointInRectangle me daría la posición pero parece ser más complicado. Me explico:

Tengo areaInterfaz que es el RectTransform del canvas. El canvas tiene activos: Screen Space - Overlay, y Scale with Scree Size. Recibo la posición en pantalla de un Camera.main.WorldToScreenPoint(transform.position). El control con el puntaje tiene anchor botton-left. Entonces se instancia, se emparenta al canvas y se posiciona al centro de la coordenada transformada:

 

	public void CreaPuntos(
		Vector2 pp)	// posición en pantalla
	{
		// Crea y agrega.
		GameObject p1 = Instantiate(puntos);
		p1.transform.SetParent(areaInterfaz.transform);

		// Posiciona.
		Vector2 ps;	// posición
		RectTransformUtility.ScreenPointToLocalPointInRectangle(areaInterfaz, pp, Camera.main, out ps);
		RectTransform a = p1.GetComponent<RectTransform>();
		a.position = new Vector3(a.rect.width / 2 - ps.x, a.rect.height / 2 - ps.y);
	}


Sin embargo no queda en la posición correcta, y al cambiar la resolución no parece haber una relación con el tamaño del canvas. ¿Alguna idea de qué puede faltar? ¿O una mejor formar de hacerlo?

Por cierto que el orden de la resta en la ultima línea logra que quede sobre el canvas, y no al lado contrario fuera de la pantalla. Y la distancia al punto correcto varía mucho respecto a las dimensiones del control, entonces no creo que el problema sea esa operación, sino la conversión.

Edited by Braltor

Share this post


Link to post
Share on other sites

Yo me lo he solucionado en algunas situaciones del anchor (todas no las necesito) pero reconozco que es más sencilla y elegante la del enlace.

Realmente una función así debería estar de cabecera, ya que el p* UI 4.6 ha sido un dolor de cabeza para mí mucho tiempo. Ahora ya es igual, pero los novatos deberían pegarle un ojo.

Share this post


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

×
×
  • Create New...