RoamManager.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using Cinemachine;
  5. using GameFramework.Event;
  6. using UnityEngine;
  7. using UnityEngine.Playables;
  8. public class RoamManager : MonoBehaviour
  9. {
  10. public CinemachineVirtualCamera[] AutoVirtualCamera;
  11. public CinemachineVirtualCamera FpVirtualCamera;
  12. public PlayableDirector autoAni;
  13. // Start is called before the first frame update
  14. void Awake()
  15. {
  16. GameMain.Event.Subscribe(ChangeRoamTypeEvent.EventId,OnGetChangeRoamType);
  17. for (int i = 0; i < AutoVirtualCamera.Length; i++)
  18. {
  19. AutoVirtualCamera[i].enabled = false;
  20. }
  21. }
  22. private void OnDestroy()
  23. {
  24. GameMain.Event.Unsubscribe(ChangeRoamTypeEvent.EventId,OnGetChangeRoamType);
  25. }
  26. public void OnGetChangeRoamType(object sender, GameEventArgs e)
  27. {
  28. ChangeRoamTypeEvent args = (ChangeRoamTypeEvent)e;
  29. switch (args.type)
  30. {
  31. case 0:
  32. for (int i = 0; i < AutoVirtualCamera.Length; i++)
  33. {
  34. AutoVirtualCamera[i].enabled = true;
  35. }
  36. FpVirtualCamera.enabled = false;
  37. autoAni.Play();
  38. break;
  39. case 1:
  40. autoAni.Pause();
  41. autoAni.time = 0;
  42. FpVirtualCamera.enabled = true;
  43. for (int i = 0; i < AutoVirtualCamera.Length; i++)
  44. {
  45. AutoVirtualCamera[i].enabled = false;
  46. }
  47. break;
  48. }
  49. }
  50. }