using System.Collections; using System.Collections.Generic; using UnityEngine; using AX.MessageSystem; using System; using AX.InputSystem; [RequireComponent(typeof(CameraManager))] public class CameraRotation : MonoBehaviour { private CameraManager cameraManager; // Use this for initialization void Start () { cameraManager = GetComponent(); } // Update is called once per frame void Update() { } void OnEnable() { MessageDispatcher.AddListener("ROTATE_ENTER_COMMAND", RotateEnterExecute); MessageDispatcher.AddListener("ROTATING_COMMAND", RotatingExecute); MessageDispatcher.AddListener("ROTATE_EXIT_COMMAND", RotateExitExecute); } void OnDisable() { MessageDispatcher.RemoveListener("ROTATE_ENTER_COMMAND", RotateEnterExecute); MessageDispatcher.RemoveListener("ROTATING_COMMAND", RotatingExecute); MessageDispatcher.RemoveListener("ROTATE_EXIT_COMMAND", RotateExitExecute); } void OnDestroy() { MessageDispatcher.RemoveListener("ROTATE_ENTER_COMMAND", RotateEnterExecute); MessageDispatcher.RemoveListener("ROTATING_COMMAND", RotatingExecute); MessageDispatcher.RemoveListener("ROTATE_EXIT_COMMAND", RotateExitExecute); } private void RotateEnterExecute(IMessage obj) { var data = (CameraCmdArgs)obj.Data; cameraManager.UpdateCameraRotationData(data); } private void RotatingExecute(IMessage obj) { var data = (CameraCmdArgs)obj.Data; cameraManager.UpdateCameraRotationData(data); } private void RotateExitExecute(IMessage obj) { var data = (CameraCmdArgs)obj.Data; cameraManager.UpdateCameraRotationData(data); } }