GeoJam2021/Assets/UserReporting/Scripts/FramerateMonitor.cs
2021-07-23 09:45:12 +02:00

60 lines
1.3 KiB
C#

using UnityEngine;
/// <summary>
/// Represents a behavior that monitors the application for framerate issues and automatically submits a user report.
/// </summary>
public class FramerateMonitor : UserReportingMonitor
{
#region Constructors
/// <summary>
/// Creates a new instance of the <see cref="FramerateMonitor"/> class.
/// </summary>
public FramerateMonitor()
{
this.MaximumDurationInSeconds = 10;
this.MinimumFramerate = 15;
}
#endregion
#region Fields
private float duration;
/// <summary>
/// Gets or sets the maximum duration in seconds.
/// </summary>
public float MaximumDurationInSeconds;
/// <summary>
/// Gets or sets the minimum framerate.
/// </summary>
public float MinimumFramerate;
#endregion
#region Methods
private void Update()
{
float deltaTime = Time.deltaTime;
float framerate = 1.0f / deltaTime;
if (framerate < this.MinimumFramerate)
{
this.duration += deltaTime;
}
else
{
this.duration = 0;
}
if (this.duration > this.MaximumDurationInSeconds)
{
this.duration = 0;
this.Trigger();
}
}
#endregion
}