Почему не меняется цвет буквы при запуске
Не меняется цвет слово текст при запуске проекта, но при нажатии на букву цвет меняется. Похожая ситуация была при наследовании->дочерний класс некорректно показывал значение, т.е показывал значение отца, а не дочернего класса. Тогда я исправил(или это был костыль?) тем что назначил свойство в отцовском классе абстрактным. Но как тут исправить?
using System.Text.RegularExpressions;
using TMPro;
using UnityEngine;
public class GameManager : MonoBehaviour
{
public string goalWord;
public string currentWord;
private int wordIndex;
private string targetWord;
private Color32 alphaColor = new Color32(255, 255, 255, 0);
[SerializeField] TextMeshProUGUI _text;
void Start()
{
_text.SetText("Этот *текст* должен поменять цвет");
AutoGenerateTextMission(_text.text);
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
GetClickedWord();
}
}
void AutoGenerateTextMission(string text)
{
goalWord = Regex.Match(_text.text, @"\*(.*)\*").Groups[1].Value;
for (int i = 0; i < _text.GetTextInfo(_text.text).wordCount; i++)
{
if (_text.GetTextInfo(_text.text).wordInfo[i].GetWord().Equals(goalWord))
{
wordIndex = i;
}
}
ChangeWordColor();
}
void GetClickedWord()
{
wordIndex = TMP_TextUtilities.FindIntersectingWord(_text, Input.mousePosition, null);
if (wordIndex != -1)
{
targetWord = _text.textInfo.wordInfo[wordIndex].GetWord();
ChangeWordColor();
Debug.Log("Clicked on " + targetWord);
}
}
void ChangeWordColor()
{
TMP_WordInfo info = _text.textInfo.wordInfo[wordIndex];
for (int i = 0; i < info.characterCount; ++i)
{
int charIndex = info.firstCharacterIndex + i;
int meshIndex = _text.textInfo.characterInfo[charIndex].materialReferenceIndex;
int vertexIndex = _text.textInfo.characterInfo[charIndex].vertexIndex;
Color32[] vertexColors = _text.textInfo.meshInfo[meshIndex].colors32;
vertexColors[vertexIndex + 0] = alphaColor;
vertexColors[vertexIndex + 1] = alphaColor;
vertexColors[vertexIndex + 2] = alphaColor;
vertexColors[vertexIndex + 3] = alphaColor;
}
Debug.Log(info.GetWord());
_text.UpdateVertexData(TMP_VertexDataUpdateFlags.All);
}
}