Application.targetFrameRate 可以指定游戏的运行帧率, -1 让游戏以最快的速度运行。
void Awake(){
///设置帧频
Application.targetFrameRate = _FPS;
}
显示FPS代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FPSInfo : MonoBehaviour {
public float _updateRateTime = 1f; //更新帧显示帧数的时间
public int _FPS = 60; //默认帧频
private float _lastUpdateShowTime = 0f; //上次更新频率的时间
private int _frameCount; //每次统计时间之间运行多少针
private float _finalFPS; //实际帧数
void Awake(){
///设置帧频
Application.targetFrameRate = _FPS;
}
// Use this for initialization
void Start () {
_lastUpdateShowTime = Time.realtimeSinceStartup;
_frameCount = 0;
}
// Update is called once per frame
void Update () {
_frameCount++;
if(Time.realtimeSinceStartup - _lastUpdateShowTime >= _updateRateTime){
_finalFPS = _frameCount/(Time.realtimeSinceStartup - _lastUpdateShowTime);
_lastUpdateShowTime = Time.realtimeSinceStartup;
_frameCount = 0;
}
}
/// <summary>
/// on gui
/// </summary>
void OnGUI(){
GUIStyle fontStyle = new GUIStyle();
fontStyle.normal.background = null;
fontStyle.normal.textColor = new Color(1,0,0);
fontStyle.alignment = TextAnchor.UpperRight;
fontStyle.fontSize = 20;
GUI.Label(new Rect(Screen.width-100,0,100,100),"FPS: "+string.Format("{0:f2}", _finalFPS),fontStyle);
}
}
特别注意:
设置游戏帧数的时候请关闭垂直同步,不然会根据屏幕刷新率来设定帧数。