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;
}
}