public virtual void FixedUpdate()
{
if (Time.time - iterationStartTime > iterationDuration && iterationCount < maxIterations) { // every new iteration
iterationCount++;
// setup new iteration
resetWorld ();
newIteration ();
// set new fall duration to if benchmarkObject were 5*1.5 benchmarkObjects higher than current iteration
iterationDuration = calculateDuration ();
iterationStartTime = Time.time;
} else if (numDataPoints < snapshots && Time.time - lastFrameRecordingTime > iterationDuration
/ snapshots && intermediateSnapshotCount == 10) { // every new snapshot per iteration
float avgFrameRate = 0;
for (int i = 0; i < snapshots; i++) {
avgFrameRate += intermediateFrameRates [i];
}
avgFrameRate = avgFrameRate / snapshots;
framerates [iterationCount, numDataPoints] = avgFrameRate;
lastFrameRecordingTime = Time.time;
numDataPoints++;
intermediateSnapshotCount = 0;
} else if (Time.time - lastFrameRecordingTime > iterationDuration / (snapshots * intermediateSnapshots)
* intermediateSnapshotCount && intermediateSnapshotCount < 10) { // every intermediate
intermediateFrameRates [intermediateSnapshotCount] = Time.deltaTime;
intermediateSnapshotCount++;
}
}