Как можно сделать увеличение размера шрифта?

Программирование на Юнити.

Как можно сделать увеличение размера шрифта?

Сообщение Sergasteam 24 фев 2011, 21:27

Ребят,подскажите плиз,я все ломаю голову,как сделать чтобы текст в игре,при любом разрешении экрана, находился на своем месте и увеличивался пропорционально при смене разрешения? например в разрешении 640х480 он отображается нормально,мелким шрифтом,а когда идет изменение разрешения например на 1366х768,то он таким же и остается,и немного смещается от заданного положения,а нужно чтобы текст увеличивался и оставался вкопано на своем месте :((
Sergasteam
UNIт
 
Сообщения: 68
Зарегистрирован: 16 янв 2011, 00:04

Re: Как можно сделать увеличение размера шрифта?

Сообщение zoon 24 фев 2011, 21:45

Какой текст, GUI или 3D text?

Если GUI - то нужно прямоугольник передвинуть, если 3D - то нужно определить его размеры через renderer.bounds.extents и скорректировать transform.
Джаггер
Evo
Аватара пользователя
zoon
UNIт
 
Сообщения: 58
Зарегистрирован: 24 май 2010, 08:27

Re: Как можно сделать увеличение размера шрифта?

Сообщение Sergasteam 24 фев 2011, 22:24

GUI.layer у меня, бокс не использую,лэер более удобный наверно,лазил по официальному форуму,там все твердили про матрицу4х4 и пиксель корект,но так ничего не получилось(( guiskin,растягивается,а вот текст не хочет увеличиваться пропорционально((
Sergasteam
UNIт
 
Сообщения: 68
Зарегистрирован: 16 янв 2011, 00:04

Re: Как можно сделать увеличение размера шрифта?

Сообщение zoon 24 фев 2011, 23:03

Как вы уже заметили - придется руками менять размер шрифта. Поставьте шрифту при импорте свойство "Dynamic", а у GUIText меняйте fontSize (http://unity3d.com/support/documentatio ... tSize.html).
Джаггер
Evo
Аватара пользователя
zoon
UNIт
 
Сообщения: 58
Зарегистрирован: 24 май 2010, 08:27

Re: Как можно сделать увеличение размера шрифта?

Сообщение Zaicheg 24 фев 2011, 23:03

Я бы попробовал считать изменение разрешения экрана и менять в соответствии с этим кегль шрифта (GUIStyle.fontSize), если платформа поддерживает "dynamic font rendering". Ну а позиция меняться и не должна, тут надо код смотреть.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Как можно сделать увеличение размера шрифта?

Сообщение gnoblin 24 фев 2011, 23:36

да всё просто... GUILayoutUtility.ScaleAroundPivot()
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Как можно сделать увеличение размера шрифта?

Сообщение zoon 25 фев 2011, 00:49

gnoblin писал(а):да всё просто... GUILayoutUtility.ScaleAroundPivot()


Топикстартер использует GUIText - там это не сработает. ScaleAroundPivot просто меняет GUI.matrix

Синтаксис:
Используется csharp
public static void ScaleAroundPivot(Vector2 scale, Vector2 pivotPoint)
{
    Matrix4x4 matrix = GUI.matrix;
    Vector2 vector = GUIClip.Unclip(pivotPoint);
    Matrix4x4 matrixx2 = Matrix4x4.TRS((Vector3) vector, Quaternion.identity, new Vector3(scale.x, scale.y, 1f)) *
         Matrix4x4.TRS((Vector3) -vector, Quaternion.identity, Vector3.one);
    GUI.matrix = matrixx2 * matrix;
}
 
Джаггер
Evo
Аватара пользователя
zoon
UNIт
 
Сообщения: 58
Зарегистрирован: 24 май 2010, 08:27

Re: Как можно сделать увеличение размера шрифта?

Сообщение gnoblin 25 фев 2011, 04:56

ок, читал по диагонали O:-)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Как можно сделать увеличение размера шрифта?

Сообщение Sergasteam 25 фев 2011, 21:26

И это меняет размер шрифта? при смене разрешения экрана?
Sergasteam
UNIт
 
Сообщения: 68
Зарегистрирован: 16 янв 2011, 00:04

Re: Как можно сделать увеличение размера шрифта?

Сообщение Ert Donuell 25 фев 2011, 21:54

Вот фрагмент кода, способный Вам помочь в сохранении позиции объектов при смене разрешения:
Синтаксис:
Используется csharp
// Private variables
        // Resolution
        private int resolutionWidth;
        private int resolutionHeight;
        private Rect WindowRect;

void FixedUpdate ()
{
        if ((resolutionWidth != Screen.width) || (resolutionHeight != Screen.height))
        {
                print("Changing window size from " + resolutionWidth + "x" + resolutionHeight + " to " + Screen.width + "x" + Screen.height);
                resolutionWidth = Screen.width;
                resolutionHeight = Screen.height;
                WindowRect = new Rect(0, 0, resolutionWidth, resolutionHeight);
                buttonX = resolutionWidth/2 - 100;
        }
}
 

WindowRect - прямоугольник, растянутый на всё окно;
buttonX - позиция по оси x на 100 пикселей левее центра.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Как можно сделать увеличение размера шрифта?

Сообщение Sergasteam 26 фев 2011, 10:59

Но это же растяжение объектов,а все таки как шрифт увеличить пряма в игре?Проблема настолько сложная?
Sergasteam
UNIт
 
Сообщения: 68
Зарегистрирован: 16 янв 2011, 00:04

Re: Как можно сделать увеличение размера шрифта?

Сообщение dtntr 15 мар 2011, 11:49

Михайлов Дмитрий
skype: Dtntrr
icq: 168121770
e-mail: _ultradma@mail.ru
_ttp://vkontakte.ru/#/id28379000
Мой законченный проект: _ttp://www.kongregate.com/games/Dmitrii ... oll-bomber
dtntr
UNITрон
 
Сообщения: 201
Зарегистрирован: 06 окт 2009, 12:16
Откуда: Тверь
  • ICQ


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


cron