You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
2.2 KiB
C#

using UnityEngine;
namespace MalbersAnimations
{
public class FreeLockCameraManager : ScriptableObject
{
[Header("Aim States")]
public FreeLookCameraState AimRight;
public FreeLookCameraState AimLeft;
internal MFreeLookCamera mCamera;
public void SetCamera(MFreeLookCamera Freecamera) => mCamera = Freecamera;
public void SetAimLeft(FreeLookCameraState state) => AimLeft = state;
public void SetAimRight(FreeLookCameraState state) => AimRight = state;
public void Target_Set(Transform tranform) => mCamera?.Target_Set(tranform);
public void Target_Set_Temporal(Transform tranform) => mCamera?.Target_Set_Temporal(tranform);
public void Target_Restore() => mCamera?.Target_Restore();
public void ChangeFOV(float newFOV) => mCamera?.ChangeFOV(newFOV);
public void ToggleFOV(bool val) => mCamera?.ToggleSprintFOV(val);
/// <summary> When the Rider is Aiming is necesary to change the Update Mode to Late Update</summary>
public virtual void ForceUpdateMode(bool val)
{
if (mCamera)
mCamera.updateType = val ? UpdateType.LateUpdate : mCamera.defaultUpdate;
}
public virtual void SetAim(int ID)
{
if (mCamera)
{
if (ID == -1)
SetTemporalState(AimLeft);
else if (ID == 1)
SetTemporalState(AimRight);
else
SetState(mCamera.DefaultState);
}
}
public virtual void SetState(FreeLookCameraState state) => SetState(state, false);
public virtual void SetStateInstant(FreeLookCameraState state) => mCamera?.SetState_Instant(state, false);
public virtual void SetTemporalState(FreeLookCameraState state) => SetState(state, true);
public virtual void MobileMovement(Vector2 input) { if (mCamera) mCamera.MovementAxis.Value = input; }
public virtual void Camera_EnableInput(bool enabled) => mCamera?.EnableInput(enabled);
private void SetState(FreeLookCameraState state, bool temporal) => mCamera?.SetState(state, temporal);
}
}