У меня есть префаб клавиатуры и префаб с 6 клавишами. Ставлю ключи с Instantiate . Каждые ключи имеют объекты TextMeshPro. Мне нужно изменить эти символы с помощью сценария. Но когда я пытаюсь получить компонент TextMeshPro, консоль возвращает null.
Debug.Log(GetComponent<TextMeshPro>());
Моя часть кода здесь;
private void SetUp()
{
// Global Screen Height
var worldScreenHeight = Camera.main.orthographicSize * 2.0;
// Global Screen Width
var worldScreenWidth = worldScreenHeight / Screen.height * Screen.width;
// Keyboard
var keyboardSize = GetComponent<SpriteRenderer>().sprite.bounds.size.x;
var neededScale = worldScreenWidth / keyboardSize;
var neededYPosition = (worldScreenHeight / 2) - (keyboardSize / 2);
transform.localScale = new Vector3((float)neededScale, (float)neededScale, 0);
transform.position = new Vector3(0, -(float)neededYPosition, 0);
for (int i = 0; i < Characters.Length; i++)
{
double angle = ((i / (Characters.Length / (double)2)) * Math.PI);
GameObject newObject = Instantiate(Keys, new Vector2((float)(keyboardSize / 2 * 0.6 * neededScale * Math.Cos(angle)), (float)(keyboardSize / 2 * 0.6 * neededScale * Math.Sin(angle) - neededYPosition)), Quaternion.identity, transform) as GameObject;
newObject.transform.localScale = new Vector3(0.5f, 0.5f, 0);
// I can't access textmeshpro
Debug.Log(GetComponent<TextMeshPro>());
}
}
Как изменить строки в TextMeshPro?