ConditionManager.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using Routes;
  3. using SicknessReduction.Haptic;
  4. using SicknessReduction.Visual.DoF;
  5. using SicknessReduction.Visual.Vignetting;
  6. using UnityEngine;
  7. public enum SicknessMeasure
  8. {
  9. Vignetting,
  10. DepthOfField,
  11. VirtualHelmet,
  12. Fan,
  13. Vibration,
  14. None
  15. }
  16. [Serializable]
  17. public struct Condition
  18. {
  19. public int routeNumber;
  20. public SicknessMeasure activeMeasure;
  21. }
  22. public class ConditionManager : MonoBehaviour
  23. {
  24. [Header("Game Objects")] public RouteManager routeManager;
  25. public DynamicVignetting dynamicVignetting;
  26. public DynamicDoF dynamicDoF;
  27. public GameObject virtualHelmet;
  28. public FanController fanController;
  29. public VibrationController vibrationController;
  30. public GameObject ppVolume;
  31. [Header("Configuration")] public Condition[] conditions;
  32. public int activeCondition;
  33. private void OnEnable()
  34. {
  35. var c = conditions[activeCondition];
  36. routeManager.selectedRoute = c.routeNumber;
  37. ppVolume.SetActive(false);
  38. fanController.enabled = c.activeMeasure == SicknessMeasure.Fan;
  39. vibrationController.enabled = c.activeMeasure == SicknessMeasure.Vibration;
  40. virtualHelmet.SetActive(c.activeMeasure == SicknessMeasure.VirtualHelmet);
  41. ppVolume.SetActive(c.activeMeasure == SicknessMeasure.DepthOfField);
  42. dynamicDoF.enabled = c.activeMeasure == SicknessMeasure.DepthOfField;
  43. dynamicVignetting.enabled = c.activeMeasure == SicknessMeasure.Vignetting;
  44. }
  45. }