1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using System;
- using Routes;
- using Sensors;
- using Controller;
- using SicknessReduction.Haptic;
- using SicknessReduction.Visual.DoF;
- using SicknessReduction.Visual.Vignetting;
- using UnityEngine;
- namespace Study
- {
- public enum SicknessMeasure
- {
- Vignetting,
- DepthOfField,
- VirtualHelmet,
- Fan,
- Vibration,
- None
- }
- public enum SteeringMode
- {
- frontWheel,
- Leaning,
- HMD
- }
- [Serializable]
- public struct Condition
- {
- public int routeNumber;
- public SicknessMeasure activeMeasure;
- public SteeringMode steeringMode;
- }
- public class ConditionManager : MonoBehaviour
- {
- [Header("Game Objects")] public RouteManager routeManager;
- public DynamicVignetting dynamicVignetting;
- public DynamicDoF dynamicDoF;
- public GameObject virtualHelmet;
- public DeskFanController fanController;
- public VibrationController vibrationController;
- public GameObject ppVolume;
- public SensorStatus waitForSensors;
- [Header("Configuration")] public Condition[] conditions;
- public int activeCondition;
- private void OnEnable()
- {
- var c = conditions[activeCondition];
- routeManager.selectedRoute = c.routeNumber;
- ppVolume.SetActive(false);
- var bikePlayer = GameObject.Find("bike");
- var playerStats = bikePlayer.GetComponent<PlayerStats>();
- var bike = GameObject.Find("BikePlayer - RigidBody");
- var sensorBike = bike.GetComponent<Controller.SensorBikeController>();
- playerStats.SetCondition(c.steeringMode);
- sensorBike.SetCondition(c.steeringMode);
- // Make sure the script is enabled
- sensorBike.enabled = true;
- fanController.enabled = c.activeMeasure == SicknessMeasure.Fan;
- vibrationController.enabled = c.activeMeasure == SicknessMeasure.Vibration;
- virtualHelmet.SetActive(c.activeMeasure == SicknessMeasure.VirtualHelmet);
- ppVolume.SetActive(c.activeMeasure == SicknessMeasure.DepthOfField);
- dynamicDoF.enabled = c.activeMeasure == SicknessMeasure.DepthOfField;
- dynamicVignetting.enabled = c.activeMeasure == SicknessMeasure.Vignetting;
- waitForSensors.waitForMqtt =
- c.activeMeasure == SicknessMeasure.Vibration || c.activeMeasure == SicknessMeasure.Fan;
- }
- public int GetRouteNumber()
- {
- var c = conditions[activeCondition];
- return c.routeNumber;
- }
- }
- }
|