Как изменить 3D - TextMe sh Pro внутри строки с помощью скрипта? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть префаб клавиатуры и префаб с 6 клавишами. Ставлю ключи с Instantiate . Каждые ключи имеют объекты TextMeshPro. Мне нужно изменить эти символы с помощью сценария. Но когда я пытаюсь получить компонент TextMeshPro, консоль возвращает null.

Debug.Log(GetComponent<TextMeshPro>());

enter image description here

Моя часть кода здесь;

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?

1 Ответ

0 голосов
/ 27 мая 2020

Замените GetComponent<TextMeshPro>() на GetComponent<TextMeshProUGUI>().

Есть два компонента TextMeshPro, которые оба являются производными от TMP_Text.

Первый компонент типа TextMeshPro предназначен для замените старый TextMe sh, который использует MeshRenderer.

Второй тип TextMeshProU GUI предназначен для замены UI.Text и предназначен для работы с CanvasRenderer и системой Canvas, который кажется тем, что вы используете.

...