Продолжая статьи о Unity, можно даже сказать, что я слегка разогнался, сегодня я вас научу простой фиче — отображение FPS в Unity в вашей игре. Часто возникают ситуации, когда необходимо оценить производительность системы во время тестирования вашей игры. Одним из основных показателей является количество кадров в секунду. Давайте напишем это простую штуку.
Отображаем FPS в Unity
Итак, для начала как всегда определимся с техническим заданием:
- ФПС должен отображаться в виде текста.
- ФПС должен обновляться покадрово.
- Не должен занимать много места.
- Был читабелен.
В принципе для реализации этого достаточно. Теперь перейдем к надобности в игровых объектах. Фактически нам понадобится пустой игровой объект, на который необходимо повесить скрипт.
Чтобы создать пустой объект, в проводнике объектов сцены нажмите ПКМ -> Create Empty… И назовите объект «FPS»:
Далее добавляем скрипт на созданный объект. Кто не знает как это сделать — способ описан в этой статье. Далее открываем окно редактора кода и пишем следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ShowFPS : MonoBehaviour { public static float fps; void OnGUI() { fps = 1.0f / Time.deltaTime; GUILayout.Label("FPS: " + (int)fps); } } |
Да-да, вы можете начать говорить про «а как же интерфейс», но для фпс-а он не нужен, поэтому воспользуемся стандартными возможностями Unity. К тому же в таком случае, можно закрепить hotkey для отображения фпс, чтобы можно было управлять отображением. Обратите внимание на фрагмент (int)fps — он сообщает о том, чтобы переменная fps отображалась в виде целочисленного. Без этого условия после запятой было еще множество цифр, но нам это не нужно.
На выходе получаем такую картинку:
В левом верхнем углу получили «FPS: 59». Соответственно его работа ориентируется на данные в формуле расчета.
Новое!
Вот такой краткий пост получился, но как говорится краткость сестра таланта. Подписывайтесь на наш Youtube-канал и группу в ВК!
А как поменять место где отображается фпс и шрифт? (Просто слишком мелко показывается и у меня он прям возле границы экрана, неудобно)