¿Usar script para cambiar la fuente de la etiqueta de un botón (TextMesh Pro)?
– UnityAssets3Free
bienvenido , soy Daniel y esta vez os traigo
esta nueva pregunta
Quiero usar el script para cambiar dinámicamente la fuente de una etiqueta de botón específica en Unity. Sin embargo, mis esfuerzos no dieron resultado.
Creé un juego simple. La interfaz del juego tiene varios botones en la pantalla, con etiquetas de texto únicas en cada botón. Los botones son elementos de pantalla (Botón de interfaz de usuario) con un subelemento (Texto – TextMeshPro) que proporciona la etiqueta de texto para cada uno de los botones.
En el ejemplo de código a continuación, todo el código funciona excepto la última línea completa que comienza, «buttonLabelText.font =». Por ejemplo, puedo usar el resto del código para cambiar fácilmente lo que dice el botón (cambiar el texto del botón). Sin embargo, no puedo cambiar la fuente (o hacer otras manipulaciones de fuente como cambiar el tamaño de fuente).
Información adicional: El siguiente código no genera ningún error. Estoy usando TextMeshPro. La fuente deseada se encuentra en la siguiente carpeta: Activos > TextMesh Pro > Recursos > Fuentes y materiales. La fuente se guarda en formato SDF.
Contexto adicional: Quiero cambiar la fuente a través de un script porque hay varios botones en la interfaz del juego, todos los cuales cambiarán las fuentes en ciertos momentos. Entonces, el script me permitiría especificar más fácilmente qué botones deberían cambiar de fuente en ciertos momentos.
¿Alguna solución potencial?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class FontManipulation : MonoBehaviour
public TMP_FontAsset ChillerSDF; // ChillerSDF is the font I want for the button label text.
private TextMeshProUGUI buttonLabelText; // buttonLabelText is the actual text within the button label
void Start()
TextMeshProUGUI buttonLabelText = GameObject.Find("ButtonLabel").GetComponent<TextMeshProUGUI>(); // This code finds the correct button label among multiple button labels in the scene, and grabs the TextMesh Pro GUI. This code works (I can use it to change what the text says, for example).
buttonLabelText.font = ChillerSDF; // This code should change the font to the desired font, but does not work.
1 respuesta 1
Tuve el mismo problema que tú y lo resolví obteniendo TMP_Text en lugar de TextMeshProUGUI
public TMP_FontAsset ChillerSDF;
private TMP_Text buttonLabelText; //TMP_Text instead of TextMeshProUGUI
void Start()
TMP_Text buttonLabelText = GameObject.Find("ButtonLabel").GetComponent<TMP_Text>();
buttonLabelText.font = ChillerSDF; // This code should work now
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
por hoy,espero que te halla servido