[Duda Unity] Problema con fuentes difuminadas

VicoViper

¡Buenas gente!

Pues tal y como dice el título: Tengo un problema con las fuentes de Unity... y es básicamente que se difuminan.
Dejo un pantallazo para que veáis a que me refiero:

El tema es que no me había dado cuenta nunca de esto, hasta que he comenzado a trabajar a bajas resoluciones que escalan a lo bestia (el juego ahora mismo está a 320x240) y es algo que se nota mucho... Pero es que además parece que Unity siempre lo hace por defecto. La cosa es: ¿Se puede evitar?

He estado buscando por los foros y parece que hay algún que otro plugin que lo arregla de forma automática... pero... let's go don't fuck me, tiene que haber alguna forma de decirle a unity que se deje de difuminados y muestre los textos como Díos(píxel) manda.

He estado revisando la Script Reference del UI.Text pero no veo nada (tampoco tengo muy claro qué buscar).
También he estado toqueteando a lo loco todas las opciones del Inspector a ver si alguna hace algo, pero no hay manera.

¿Ideas?¿Consejos?¿A alguien más le ha pasado?

PD: Si todo lo demás falla, creo que la opción del spritesheet con las letras pixeladas e implementar una función "SpritePrint()" que se encargue de dibujar el texto, puede ser una solución factible.

B

Has probado a tickear la opción "Pixel Perfect" en el Canvas?

http://docs.unity3d.com/ScriptReference/Canvas-pixelPerfect.html

1 1 respuesta
marod

#1 Intenta esto:

Coge el archivo .ttf de la fuente en Unity, y aumentale el tamaño donde pone Font Size (Prueba con el doble), guarda y prueba.

1 1 respuesta
VicoViper

#2 La opción Pixel Perfect ya estaba activada, pero no hace gran cosa con el texto.

Al final la solución casi optima no ha sido el Font Size que decía #3, pero al entrar ahí he visto el Redering Mode de la fuente :no: . (llevaba todo el rato buscando en las opciones de la UI y resulta que eso se arregla en la propia fuente). Así que la respuesta me ha servido igualmente :D

He pasado el Redering Mode de "Smooth" a "Hinted Rastrer" y ha pegado un cambio radical.

Todavía se puede ver que queda muy lejos de ser perfecto, y me hace algunas cosillas raras en las "e" y "s" pero para ir tirando, creo que está bastante bien. Y para ir trabajando ahora ya me va bien...

En todo caso, parece que lo que mejor resultado da por ahora es hacer el canvas en Render Mode: World Space y subirle bastante el Dynamic Pixel Per Unit a valores altos ">10".
De hecho, eso reduce MUCHO el smoothing, pero llega un momento en el que directamente peta y Unity me pide que pare al grito de:
Failed to generate dynamic font texture, because all the needed characters do not fit onto a single texture. Try using less text or a smaller font size.
UnityEditor.DockArea:OnGUI()

(En todo caso, por ahora prefiero ahorrarme los problemas de trabajar en WorldSpace relative y seguir con el Overlay, ya que la diferencia a la hora de la verdad es mínima)

PD: Por si queréis pegarle un vistazo al cambio entre el World Space y el Overlay:

PD2: Ese color tan horrible con el que está tintado todo el editor, es un mi chivato para acordarme de cuando estoy "en play". No lo tengáis en cuenta.

YaW

Olvídate del texto nativo de Unity, es puta mierda tanto de rendimiento como de calidad como estas comprobando.

Comprate el TextMeshPro y disfruta, no te rayes con el text oficial porque le falta muchísimo trabajo detrás.

Si tienes alguna duda sobre el TMP me dices que nosotros lo usamos muy mucho

7 días después
Vancete

Otra opción es aumentar el tamaño del texto y luego disminuir la escala.

Por ejemplo, si lo quieres a 12, le pones 120 y le bajas la escala a 0.1

1

Usuarios habituales