Пример счётчика кадров(FPS).

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

Пример счётчика кадров(FPS).

Сообщение AndrewSt 21 янв 2010, 14:32

Привожу здесь свой первый простенький скрипт.
Вешаем его на ГО и наслаждаемся.

Вот основные возможности скрипта:
1.Можно изменять время обновления счетчика в редакторе.
2.Можно изменить режим обновления счетчика (InvokeRepeating или FixedUpdate)
3.Отрисовка на экране от задание координат
4.Отрисовка средного значения FPS.

Код: Выделить всё
using UnityEngine;
using System.Collections;

public class FpsShow : MonoBehaviour {

   public float fpsUpdateInterval = 1.0f;
   public bool useInvoke = true;
   public bool printAvgFps = false;
   public Vector2 pos;

   private int fps = 60;
   private int fpsAvg = 60;
   private float fpsLastUpdate = 0.0f;
   private float fpsLastFrame = 0.0f;

   void Start () {
      if(useInvoke)
         InvokeRepeating("UpdateFps", fpsUpdateInterval, fpsUpdateInterval);
   }

   void UpdateFps()
   {
      fps = Mathf.RoundToInt((Time.frameCount-fpsLastFrame) / (Time.time-fpsLastUpdate));
      fpsAvg = Mathf.RoundToInt(Time.frameCount / Time.time);
      fpsLastUpdate = Time.time;
      fpsLastFrame = Time.frameCount;
   }

   void FixedUpdate()
   {
      if (useInvoke)
         return;

      if (fpsLastUpdate + fpsUpdateInterval < Time.time)
         UpdateFps();
   }

   void OnGUI()
   {
      GUI.Label(new Rect(pos.x, pos.y, 100, 20), "FPS:"+fps.ToString());

      if(printAvgFps)
         GUI.Label(new Rect(pos.x, pos.y+20, 100, 20), "FPS avg:"+fpsAvg.ToString());
   }
}
AndrewSt
UNIт
 
Сообщения: 72
Зарегистрирован: 10 дек 2009, 13:36
Откуда: СПБ
  • ICQ

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

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

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