API
float GetAverageFPS(int minutes = 1) //传入时间 最大值30 - 传入int - 返回 float
float GetMinuteAverageFPS() //前一分钟的平均值 - 不接受传入 - 返回 float
float[] GetFPSHistory(int minutes = 30) //默认过去30分钟每分钟的平均FPS - 传入int - 返回 float[]
object GetDetailedFPSInfo() //返回数据结构 - // 当前瞬时FPS // 当前分钟平均FPS // 过去5分钟平均FPS // 过去10分钟平均FPS // 过去30分钟平均FPS // 完整的30分钟历史数据数组 - 不接受传入
API 示例
private float GetAverageFPS(int minutes)
{
if (FPSMonitor == null)
{
Puts("错误: FPSMonitor插件不可用");
Interface.Oxide.UnloadPlugin(Name);
return 0f;
}
object result = FPSMonitor.CallHook("GetAverageFPS", minutes);
if (result is float)
{
return (float)result;
}
return 0f;
}
private bool isFpsAbove = true;
private IEnumerator FPSStatusMonitorCoroutine()
{
var waitTime = CoroutineEx.waitForSeconds(60f);
while (!isUnloading)
{
yield return waitTime;
if (!IsFPS())
{
isFpsAbove = true;
yield break;
}
object result = FPSMonitor?.CallHook("GetAverageFPS", 1);
float currentFps = result is float ? (float)result : 0f;
bool newStatus = currentFps > 30f;
if (newStatus != isFpsAbove){
isFpsAbove = newStatus;
}
}
}