HeavenStudio/Assets/Scripts/StretchCameraVFX.cs
Rapandrasmus 4f07d47bdb
Stretch Camera VFX Event + Fixes (#586)
* fixed blue bear bug

* glee club fix

* added stretch camera vfx event

* toss boys crouch fixed
2023-11-25 16:05:20 +00:00

53 lines
1.7 KiB
C#

using Jukebox;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace HeavenStudio
{
public class StretchCameraVFX : MonoBehaviour
{
private List<RiqEntity> _events = new();
private void Start()
{
GameManager.instance.onBeatChanged += OnBeatChanged;
}
public void OnBeatChanged(double beat)
{
_events = EventCaller.GetAllInGameManagerList("vfx", new string[] { "stretch camera" });
Update();
}
private void Update()
{
float newX = 1f;
float newY = 1f;
foreach (var e in _events)
{
float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length);
if (normalized < 0f) break;
float clampNormal = Mathf.Clamp01(normalized);
var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]);
switch ((StaticCamera.ViewAxis)e["axis"])
{
case StaticCamera.ViewAxis.All:
newX = func(e["x1"], e["x2"], clampNormal);
newY = func(e["y1"], e["y2"], clampNormal);
break;
case StaticCamera.ViewAxis.X:
newX = func(e["x1"], e["x2"], clampNormal);
break;
case StaticCamera.ViewAxis.Y:
newY = func(e["y1"], e["y2"], clampNormal);
break;
}
}
EventCaller.instance.GamesHolder.transform.localScale = new Vector3(newX, newY, 1f);
}
}
}