using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using MuHua; /// /// 相机模块 /// public class ModuleCamera : ModuleSingle { /// 当前相机 public static CameraController CurrentCamera; /// 相机模式事件 public static event Action OnCameraMode; /// 设置相机模式 public static void Mode(EnumCameraMode mode, bool isReset = true) { OnCameraMode?.Invoke(mode); if (isReset) { I.ResetCamera(); } } public List cameras; protected override void Awake() => NoReplace(); private void Start() => cameras.ForEach(obj => obj.Initialize()); /// 重置相机 public void ResetCamera() => cameras.ForEach(obj => obj.ResetCamera()); /// /// 转换方向 /// /// 相机的前方 /// 相机的右方 /// 输入的移动方向 /// Y轴向上的平面移动方向 public static Vector3 TransferDirection(Vector3 forward, Vector3 right, Vector2 moveInput) { // 确保前方和右方方向在水平面上 forward.y = 0; right.y = 0; // 归一化方向向量 forward.Normalize(); right.Normalize(); // 计算移动方向 return (forward * moveInput.y + right * moveInput.x).normalized; } }