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; } }