PlayerLocation.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class PlayerLocation : MonoBehaviour {
  5. // Enum class for all rooms
  6. public enum Room {
  7. ControlRoom,
  8. BotanicalRoom,
  9. MachineRoom,
  10. KitchenRoom,
  11. CryoRoom
  12. }
  13. // Audio player instance
  14. public AudioPlayer AudioPlayer;
  15. // Current location property
  16. private Room _CurrentLocation = Room.ControlRoom;
  17. public Room CurrentLocation
  18. {
  19. get
  20. {
  21. return _CurrentLocation;
  22. }
  23. set
  24. {
  25. if (value != _CurrentLocation)
  26. {
  27. Debug.Log("change location");
  28. // Update current location
  29. _CurrentLocation = value;
  30. // Play background soundtrack based on location
  31. PlaySoundtrackForLocation(value);
  32. }
  33. }
  34. }
  35. void Start () {
  36. // Player starts in the control room
  37. CurrentLocation = Room.ControlRoom;
  38. AudioPlayer.PlayBackgroundThemeControlRoom();
  39. }
  40. private void PlaySoundtrackForLocation(Room room)
  41. {
  42. switch (room)
  43. {
  44. case Room.ControlRoom:
  45. AudioPlayer.PlayBackgroundThemeControlRoom();
  46. break;
  47. case Room.BotanicalRoom:
  48. AudioPlayer.PlayBackgroundThemeBotanicalRoom();
  49. break;
  50. case Room.CryoRoom:
  51. AudioPlayer.PlayBackgroundThemeCryoRoom();
  52. break;
  53. case Room.KitchenRoom:
  54. AudioPlayer.PlayBackgroundThemeKitchenRoom();
  55. break;
  56. case Room.MachineRoom:
  57. AudioPlayer.PlayBackgroundThemeMachineRoom();
  58. break;
  59. }
  60. }
  61. }