gold_sprint_lpr/Assets/Scripts/GameScene/Tachometer.cs
2018-03-14 00:17:47 +01:00

54 lines
1.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
public abstract class Tachometer : MonoBehaviour {
private string inputID;
// Config
private float ticPerTurn;
private float wheelDiameter;
// Process
private float distancePerTick;
protected List<float> impulses = new List<float>();
public void SetPlayer(int playerID) {
inputID = "WheelP" + (playerID + 1);
LoadConfig(playerID);
}
private void LoadConfig(int playerID) {
var gm = GameManager.Instance;
ticPerTurn = gm.GetSensorsCount(playerID);
wheelDiameter = gm.GetBikeWheelDiameter(playerID);
distancePerTick = wheelDiameter * Mathf.PI / ticPerTurn;
}
private void RegisterTic() {
Debug.Log("Register");
impulses.Add(Time.time);
}
public virtual float GetSpeed() {
return -1f;
}
public float GetDistanceRun() {
return distancePerTick * impulses.Count();
}
void Start() {
}
void Update() {
if (Input.GetButtonDown(inputID))
RegisterTic();
}
}