Browse Source

Extend Marcels Logger with condition

Till Steinert 2 years ago
parent
commit
0ff39c015d

+ 3 - 1
Assets/Scripts/Controller/SensorBikeController.cs

@@ -6,6 +6,9 @@ using Sensors.ANT;
 using Tracking;
 using UnityEngine;
 
+// Declare outisde for public visibility
+public enum SteeringMode { frontWheel, Leaning, HMD };
+
 namespace Controller
 {
     [Serializable]
@@ -30,7 +33,6 @@ namespace Controller
     [RequireComponent(typeof(IBicycleController))]
     public class SensorBikeController : MonoBehaviour
     {
-        public enum SteeringMode { frontWheel, Leaning, HMD };
         public PolarRotationMapping polarRotationMapping;
         public FrontWheelTrackerConfig frontWheelTrackerConfig;
         public HMDTrackerConfig hmdTrackerConfig;

+ 26 - 3
Assets/Scripts/Logging/Data/BikeGameObjectDataLogger.cs

@@ -19,9 +19,15 @@ namespace Logging.Data
         private readonly float velocityY;
         private readonly float velocityZ;
         private readonly int collisionCounter;
+        private readonly int coinCounter;
+        private readonly int hasFinished;
+        private readonly int hasFinishedSlalom1;
+        private readonly int hasFinishedSlalom2;
+        private readonly string condition;
 
         public BikeGameObjectDataLog(long timestamp, float positionX, float positionY, float positionZ, float rotationX,
-            float rotationY, float rotationZ, float velocityX, float velocityY, float velocityZ, int collisionCounter)
+            float rotationY, float rotationZ, float velocityX, float velocityY, float velocityZ, int collisionCounter, int coinCounter, 
+            int hasFinished, int hasFinishedSlalom1, int hasFinishedSlalom2, string condition)
         {
             this.timestamp = timestamp;
             this.positionX = positionX;
@@ -34,6 +40,11 @@ namespace Logging.Data
             this.velocityY = velocityY;
             this.velocityZ = velocityZ;
             this.collisionCounter = collisionCounter;
+            this.coinCounter = coinCounter;
+            this.hasFinished = hasFinished;
+            this.hasFinishedSlalom1 = hasFinishedSlalom1;
+            this.hasFinishedSlalom2 = hasFinishedSlalom2;
+            this.condition = condition;
         }
 
         public KeyValuePair<long, string[]> Serialize()
@@ -50,7 +61,12 @@ namespace Logging.Data
                     velocityX.ToString("F6", CultureInfo.InvariantCulture),
                     velocityY.ToString("F6", CultureInfo.InvariantCulture),
                     velocityZ.ToString("F6", CultureInfo.InvariantCulture),
-                    collisionCounter.ToString("F6", CultureInfo.InvariantCulture)
+                    collisionCounter.ToString("F6", CultureInfo.InvariantCulture),
+                    coinCounter.ToString("F6", CultureInfo.InvariantCulture),
+                    hasFinished.ToString("F6", CultureInfo.InvariantCulture),
+                    hasFinishedSlalom1.ToString("F6", CultureInfo.InvariantCulture),
+                    hasFinishedSlalom2.ToString("F6", CultureInfo.InvariantCulture),
+                    condition,
                 });
         }
     }
@@ -80,7 +96,14 @@ namespace Logging.Data
             Log(new BikeGameObjectDataLog(Helpers.RoundToLong(Time.time * 1000),
                 pos.x, pos.y, pos.z,
                 rot.x, rot.y, rot.z,
-                velocity.x, velocity.y, velocity.z, playerStats.collisionCounter));
+                velocity.x, velocity.y, velocity.z, 
+                playerStats.collisionCounter,
+                playerStats.coinCounter,
+                playerStats.hasFinished,
+                playerStats.hasFinishedSlalom1,
+                playerStats.hasFinishedSlalom2,
+                playerStats.condition
+            ));
         }
 
         public override IEnumerable<BikeGameObjectDataLog> ReadLog(IEnumerable<IEnumerable<string>> lines)

+ 24 - 1
Assets/Scripts/Obstacles/PlayerStats.cs

@@ -6,17 +6,40 @@ public class PlayerStats : MonoBehaviour
 {
     public int collisionCounter;
     public int coinCounter;
+    public string condition;
+    public int hasFinished;
+    public int hasFinishedSlalom1;
+    public int hasFinishedSlalom2;
+
     // Start is called before the first frame update
     void Start()
     {
         collisionCounter = 0;
         coinCounter = 0;
+        hasFinished = -1;
+        hasFinishedSlalom1 = -1;
+        hasFinishedSlalom2 = -1;
+        condition = "";
     }
 
     // Update is called once per frame
     void Update()
     {
-        
+        Debug.Log("Before :" + condition); 
+        var bikePlayer = GameObject.Find("BikePlayer - RigidBody");
+        switch (bikePlayer.GetComponent<Controller.SensorBikeController>().steeringSelection)
+        {
+            case SteeringMode.frontWheel:
+                condition = "frontWheel";
+                break;
+            case SteeringMode.Leaning:
+                condition = "Leaning";
+                break;
+            case SteeringMode.HMD:
+                condition = "HMD";
+                break;
+        }
+        Debug.Log("After :" + condition); 
     }
 
     public void IncreaseCollisionCounter()