26 lines
624 B
C#
26 lines
624 B
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using System.Linq;
|
|
|
|
public class PreciseTachometer : Tachometer {
|
|
|
|
public float delta = 1f;
|
|
public int sampleCount = 2;
|
|
|
|
public override float GetSpeed() {
|
|
if (impulses.Count < sampleCount)
|
|
return 0f;
|
|
var samples = impulses.Skip(impulses.Count - sampleCount);
|
|
float deltaT = samples.Last() - samples.First();
|
|
|
|
float deltaT2 = Time.time - samples.Last();
|
|
if (deltaT2 > deltaT)
|
|
deltaT = deltaT2;
|
|
|
|
return distancePerTick * (sampleCount - 1) / deltaT;
|
|
}
|
|
|
|
}
|
|
|