Как изменить стиль текста при нажатии на него 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(), кстати, можно закэшировать в отдельную переменную, чтобы каждый раз к нему не обращаться, хотя не думаю, что так часто нужно будет менять стиль шрифта.

→ Ссылка