Как изменить стиль текста при нажатии на него Unity
Как мне обратиться к стилю текста с помощью GetComponent, чтобы при нажатии на него он становился жирным.
Ответы (2 шт):
Например, так.
Создаете скрипт, который вешаете на Ваш Text:
using UnityEngine;
using UnityEngine.UI;
public class ChangeTextColorScript : MonoBehaviour
{
public void ChangeTextStyle()
{
GetComponent<Text>().text = "<b>"+GetComponent<Text>().text+"</b>";
}
}
Добавляете компонент Button и в onClick в Inspector указываете этот текст и выбираете функцию ChangeTextStyle().
Тогда при нажатии на Ваш текст его стиль изменится на жирный. За "жирность" в этом случае отвечают теги для rich-текста <b></b>, поэтому в Inspector у текста также должна стоять галочка Rich Text
Я в данном случае не согласен с первым ответом Анастасии, так как в ее случае нам нужно:
- Дважды обращаться к компоненту
- Работать со строками
- Применять теги rich-текста
А зачем, если в Unity даже у обычного Text (не нужен никакой TextMeshPro) есть такой простейший параметр как FontStyle!
Его можно изменять напрямую из скрипта в также в одну строку, но без двойного обращения к геткомпоненту, без работы со строками, без необходимости проверять включен там этот RichText или нет (по умолчанию он вроде включен?):
public void ChangeTextStyle()
{
GetComponent<Text>().fontStyle = FontStyle.Bold;
}
FontStyle - это enum, который содержит 4 возможных значения: Bold (жирный), Italic (Курсив), BoldAndItalic (жирный курсив), Normal (обычный текст).
GetComponent(), кстати, можно закэшировать в отдельную переменную, чтобы каждый раз к нему не обращаться, хотя не думаю, что так часто нужно будет менять стиль шрифта.