@Surface-ketch

Resize/rescale текста в unity 5?

Доброго времени суток.
Есть вывод счета в центре экрана:
void OnGUI()
    {
        GUI.Label(new Rect(width*0.5f-50, 0, 100, 30), scores.score.ToString(), myStyle);
    }

Размер шрифта стоит 40. Все отлично на пк, но на мобильном девайсе текст уж очень маленький. Как исправить? Нашел вариант решения через matrix4x4
public class Score1 : MonoBehaviour {
    public ElipsController scores;
    public GUIStyle myStyle;
    float width;


    void Update()
    {
        width = Screen.width;
    
    }
    public static void AutoResize(int screenWidth, int screenHeight)
    {
        Vector2 resizeRatio = new Vector2((float)Screen.width / screenWidth, (float)Screen.height / screenHeight);
        GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(resizeRatio.x, resizeRatio.y, 1.0f));
    }
    void OnGUI()
    {
        AutoResize(1024,768);
        GUI.Label(new Rect(width*0.5f-50, 0, 100, 30), scores.score.ToString(), myStyle);
    }
  

}

Тут текст меняет свои размер при изменении окна, но позиция по центру сбивается.
Какие есть пути решения?
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
В юнити уже два года как есть нормальный UI, который умеет масштабироваться в зависимости от размера экрана, с ним эта задача решается элементарно: Designing UI for Multiple Resolutions
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы