64 lines
2.0 KiB
C#
64 lines
2.0 KiB
C#
using Ichni.RhythmGame.Beatmap;
|
|
using Lean.Pool;
|
|
using MoreMountains.Feedbacks;
|
|
using UnityEngine;
|
|
|
|
namespace Ichni.RhythmGame
|
|
{
|
|
public class CameraZoomEffect : EffectBase
|
|
{
|
|
public float duration;
|
|
public float relativeZoom;
|
|
public AnimationCurve zoomCurve;
|
|
|
|
public CameraZoomEffect(float duration, float relativeZoom, AnimationCurve zoomCurve)
|
|
{
|
|
this.effectTime = 0f;
|
|
this.duration = duration;
|
|
this.relativeZoom = relativeZoom;
|
|
this.zoomCurve = zoomCurve;
|
|
}
|
|
|
|
public override void Adjust()
|
|
{
|
|
MMF_Player effect = LeanPool.Spawn(GameManager.instance.basePrefabs.cameraZoomEffect).GetComponent<MMF_Player>();
|
|
effect.GetFeedbackOfType<MMF_CameraFieldOfView>().Duration = duration;
|
|
effect.GetFeedbackOfType<MMF_CameraFieldOfView>().RemapFieldOfViewOne = relativeZoom;
|
|
effect.GetFeedbackOfType<MMF_CameraFieldOfView>().ShakeFieldOfView = zoomCurve;
|
|
effect.PlayFeedbacks();
|
|
LeanPool.Despawn(effect.gameObject, duration);
|
|
}
|
|
|
|
public override EffectBase_BM ConvertToBM()
|
|
{
|
|
return new CameraZoomEffect_BM(duration, relativeZoom, zoomCurve);
|
|
}
|
|
}
|
|
|
|
namespace Beatmap
|
|
{
|
|
public class CameraZoomEffect_BM : EffectBase_BM
|
|
{
|
|
public float duration;
|
|
public float relativeZoom;
|
|
public AnimationCurve zoomCurve;
|
|
|
|
public CameraZoomEffect_BM()
|
|
{
|
|
|
|
}
|
|
|
|
public CameraZoomEffect_BM(float duration, float relativeZoom, AnimationCurve zoomCurve)
|
|
{
|
|
this.duration = duration;
|
|
this.relativeZoom = relativeZoom;
|
|
this.zoomCurve = zoomCurve;
|
|
}
|
|
|
|
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
|
{
|
|
return new CameraZoomEffect(duration, relativeZoom, zoomCurve);
|
|
}
|
|
}
|
|
}
|
|
} |