Nouveau calcul de la vitesse
This commit is contained in:
parent
03d8b7ac87
commit
54719964f9
@ -282,8 +282,8 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: -0.11, y: 0.31}
|
||||||
m_SizeDelta: {x: 1920, y: 1080}
|
m_SizeDelta: {x: 1375.9, y: 290}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &384609362
|
--- !u!114 &384609362
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
@ -354,7 +354,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 0, g: 1, b: 0, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
@ -374,7 +374,9 @@ MonoBehaviour:
|
|||||||
m_HorizontalOverflow: 0
|
m_HorizontalOverflow: 0
|
||||||
m_VerticalOverflow: 0
|
m_VerticalOverflow: 0
|
||||||
m_LineSpacing: 1
|
m_LineSpacing: 1
|
||||||
m_Text: LUDICROUS
|
m_Text: 'LUDICROUS
|
||||||
|
|
||||||
|
'
|
||||||
--- !u!222 &384609366
|
--- !u!222 &384609366
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -491,7 +493,7 @@ Transform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 1865218697}
|
- {fileID: 1865218697}
|
||||||
m_Father: {fileID: 1036252279}
|
m_Father: {fileID: 1036252279}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &896084743
|
--- !u!114 &896084743
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
@ -580,6 +582,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 17.777779, y: 10, z: 1}
|
m_LocalScale: {x: 17.777779, y: 10, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 384609361}
|
- {fileID: 384609361}
|
||||||
|
- {fileID: 1810492795}
|
||||||
- {fileID: 896084742}
|
- {fileID: 896084742}
|
||||||
m_Father: {fileID: 670213598}
|
m_Father: {fileID: 670213598}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
@ -609,11 +612,13 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
playerID: 0
|
playerID: 0
|
||||||
distanceToRun: 400
|
distanceToRun: 300
|
||||||
wheelDiameter: 0.559
|
wheelDiameter: 0.7
|
||||||
ticPerTurn: 2
|
ticPerTurn: 1
|
||||||
speedIntegrationTime: 1
|
speedIntegrationTime: 1
|
||||||
|
maxTimeDlt: 1
|
||||||
tachometer: {fileID: 384609365}
|
tachometer: {fileID: 384609365}
|
||||||
|
maxspeed: {fileID: 1810492796}
|
||||||
--- !u!1 &1180963258
|
--- !u!1 &1180963258
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -829,7 +834,9 @@ MonoBehaviour:
|
|||||||
wheelDiameter: 0.559
|
wheelDiameter: 0.559
|
||||||
ticPerTurn: 2
|
ticPerTurn: 2
|
||||||
speedIntegrationTime: 1
|
speedIntegrationTime: 1
|
||||||
|
maxTimeDlt: 1
|
||||||
tachometer: {fileID: 6796232}
|
tachometer: {fileID: 6796232}
|
||||||
|
maxspeed: {fileID: 0}
|
||||||
--- !u!114 &1718131635
|
--- !u!114 &1718131635
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -915,6 +922,140 @@ Transform:
|
|||||||
m_Father: {fileID: 1616930803}
|
m_Father: {fileID: 1616930803}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1810492794
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 0}
|
||||||
|
serializedVersion: 5
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1810492795}
|
||||||
|
- component: {fileID: 1810492800}
|
||||||
|
- component: {fileID: 1810492799}
|
||||||
|
- component: {fileID: 1810492798}
|
||||||
|
- component: {fileID: 1810492797}
|
||||||
|
- component: {fileID: 1810492796}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: HUD Max
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1810492795
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1810492794}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: -2.8599997}
|
||||||
|
m_LocalScale: {x: 0.000520875, y: 0.000926, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1036252279}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: -0.10995972, y: 0.14}
|
||||||
|
m_SizeDelta: {x: 1375.9, y: 290}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &1810492796
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1810492794}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0, g: 1, b: 0, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
||||||
|
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_FontSize: 100
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 300
|
||||||
|
m_Alignment: 0
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: Max
|
||||||
|
--- !u!222 &1810492797
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1810492794}
|
||||||
|
--- !u!114 &1810492798
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1810492794}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!114 &1810492799
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1810492794}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 1
|
||||||
|
--- !u!223 &1810492800
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1810492794}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
--- !u!1 &1865218696
|
--- !u!1 &1865218696
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -23,13 +23,19 @@ public class BikeManager : MonoBehaviour {
|
|||||||
private float normalSpeed;
|
private float normalSpeed;
|
||||||
|
|
||||||
private float Speed {get; set; }
|
private float Speed {get; set; }
|
||||||
|
private float MaxSpeed {get; set; }
|
||||||
|
|
||||||
private Queue<float> impulses = new Queue<float>();
|
private Queue<float> impulses = new Queue<float>();
|
||||||
|
private float lastTimeImp;
|
||||||
|
private float lastTimeDlt;
|
||||||
|
public float maxTimeDlt = 1.0f;
|
||||||
|
private float filteredSpeed;
|
||||||
|
|
||||||
private VideoManager vm;
|
private VideoManager vm;
|
||||||
|
|
||||||
// TODO: Refactor deps!
|
// TODO: Refactor deps!
|
||||||
public Text tachometer;
|
public Text tachometer;
|
||||||
|
public Text maxspeed;
|
||||||
|
|
||||||
// Use this for initialization
|
// Use this for initialization
|
||||||
void Start () {
|
void Start () {
|
||||||
@ -54,17 +60,25 @@ public class BikeManager : MonoBehaviour {
|
|||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
void Update () {
|
void Update () {
|
||||||
if (Input.GetButtonDown(inputID)) {
|
//Speed = getBikeSpeedLegacy(speedIntegrationTime);
|
||||||
WheelTic();
|
Speed = getBikeSpeedApproxFiltered();
|
||||||
}
|
|
||||||
|
|
||||||
Speed = getBikeSpeed(speedIntegrationTime);
|
|
||||||
Debug.Log(Speed);
|
|
||||||
|
|
||||||
vm.speed = Speed / normalSpeed;
|
vm.speed = Speed / normalSpeed;
|
||||||
tachometer.text = (Speed * 3.6f).ToString() + "km/h";
|
|
||||||
|
if (Speed > MaxSpeed) {
|
||||||
|
MaxSpeed = Speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
tachometer.text = (Speed * 3.6f).ToString("#0.0") + "km/h";
|
||||||
|
maxspeed.text = "Max : " + (MaxSpeed * 3.6f).ToString("#0.0");
|
||||||
|
|
||||||
|
if (Input.GetButtonDown(inputID))
|
||||||
|
WheelTic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FixedUpdate() {
|
||||||
|
}
|
||||||
|
|
||||||
int getBikeImpulses(float timeWindow = .5f) {
|
int getBikeImpulses(float timeWindow = .5f) {
|
||||||
if (impulses.Count == 0) {
|
if (impulses.Count == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
@ -82,7 +96,26 @@ public class BikeManager : MonoBehaviour {
|
|||||||
return impulses.Count;
|
return impulses.Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
float getBikeSpeed(float timeWindow = .5f) {
|
float getBikeSpeedApproxFiltered(float max = 90 / 3.6f) {
|
||||||
|
float speed = getBikeSpeedApprox();
|
||||||
|
if (speed < max)
|
||||||
|
filteredSpeed = speed;
|
||||||
|
return filteredSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
float getBikeSpeedApprox() {
|
||||||
|
float newTimeDlt = Time.time - lastTimeImp;
|
||||||
|
|
||||||
|
if (lastTimeDlt < 0.01)
|
||||||
|
return 0f;
|
||||||
|
if (newTimeDlt < lastTimeDlt)
|
||||||
|
return distancePerTick / lastTimeDlt;
|
||||||
|
if (newTimeDlt < maxTimeDlt)
|
||||||
|
return distancePerTick / newTimeDlt;
|
||||||
|
return 0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
float getBikeSpeedLegacy(float timeWindow = .5f) {
|
||||||
int imp = getBikeImpulses(timeWindow);
|
int imp = getBikeImpulses(timeWindow);
|
||||||
return imp * distancePerTick / timeWindow;
|
return imp * distancePerTick / timeWindow;
|
||||||
}
|
}
|
||||||
@ -91,6 +124,11 @@ public class BikeManager : MonoBehaviour {
|
|||||||
impulses.Enqueue(Time.time);
|
impulses.Enqueue(Time.time);
|
||||||
distanceRun += distancePerTick;
|
distanceRun += distancePerTick;
|
||||||
//Debug.Log(GetProgress());
|
//Debug.Log(GetProgress());
|
||||||
|
|
||||||
|
lastTimeDlt = Time.time - lastTimeImp;
|
||||||
|
lastTimeImp = Time.time;
|
||||||
|
|
||||||
|
Debug.Log(lastTimeDlt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetProgress() {
|
public float GetProgress() {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user