using System; using System.Collections; using System.Collections.Generic; using Cinemachine; using GameFramework.Event; using UnityEngine; using UnityEngine.Playables; public class RoamManager : MonoBehaviour { public CinemachineVirtualCamera[] AutoVirtualCamera; public CinemachineVirtualCamera FpVirtualCamera; public PlayableDirector autoAni; // Start is called before the first frame update void Awake() { GameMain.Event.Subscribe(ChangeRoamTypeEvent.EventId,OnGetChangeRoamType); for (int i = 0; i < AutoVirtualCamera.Length; i++) { AutoVirtualCamera[i].enabled = false; } } private void OnDestroy() { GameMain.Event.Unsubscribe(ChangeRoamTypeEvent.EventId,OnGetChangeRoamType); } public void OnGetChangeRoamType(object sender, GameEventArgs e) { ChangeRoamTypeEvent args = (ChangeRoamTypeEvent)e; switch (args.type) { case 0: for (int i = 0; i < AutoVirtualCamera.Length; i++) { AutoVirtualCamera[i].enabled = true; } FpVirtualCamera.enabled = false; autoAni.Play(); break; case 1: autoAni.Pause(); autoAni.time = 0; FpVirtualCamera.enabled = true; for (int i = 0; i < AutoVirtualCamera.Length; i++) { AutoVirtualCamera[i].enabled = false; } break; } } }