Расположите текст внутри холста - PullRequest
0 голосов
/ 15 мая 2018

У меня есть текст, который я хотел бы визуализировать внутри Canvas (Unity).

Мой текст появится, когда я соберу апгрейд для своей игры (например, «Power-up»).Он отображает текст, но всегда в центре экрана.Это проблема.Он не появляется в позиции улучшения.

Кстати, холст установлен на «Пространство экрана - Наложение».Текст визуализируется ближе к середине сцены.Значения x и y странные (почти в нуле: x равен, например, -0.42, а y равен -0.79).

Ссылка на шрифт:

public Font myFont;

Метод, которыйгенерирует текст:

GameObject CreateText(Transform canvas_transform, float x, float y, string text_to_print, int font_size, Color text_color) {
    GameObject UItextGO = new GameObject("Text2");
    UItextGO.transform.SetParent(canvas_transform);

    RectTransform trans = UItextGO.AddComponent<RectTransform>();
    trans.anchoredPosition = new Vector2(x, y);

    Text text = UItextGO.AddComponent<Text>();
    text.text = text_to_print;
    text.fontSize = font_size;
    text.font = myFont;
    text.color = text_color;

    return UItextGO;
}

1 Ответ

0 голосов
/ 15 мая 2018

(0,0) - середина экрана.Вы устанавливаете текст как родительский элемент canvas_transform здесь UItextGO.transform.SetParent(canvas_transform);

Это означает, что текст теперь является дочерним по отношению к объекту, а (0,0) является исходной точкой родительского объекта для текстового объекта.

И вместо этого trans.anchoredPosition = new Vector2(x, y);, попробуйте что-то вроде этого: trans.transform.position = upgrade.transform.position; (если позиция (x,y) наверняка является позицией обновления. Нет необходимости в upgrade.transform.position.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...