Rhythm Rally Camera Event

Rotate the camera with different easing functions and the option to add/remove from current rotation.
This commit is contained in:
Carson Kompon
2022-02-28 14:31:28 -05:00
parent 77af919722
commit 1ba9a3c1dc
3 changed files with 61 additions and 14 deletions

View File

@ -13,7 +13,7 @@ namespace RhythmHeavenMania.Games.RhythmRally
[Header("Camera")]
public Transform renderQuadTrans;
public Transform cameraPos;
public Transform cameraPivot;
[Header("Ball and curve info")]
@ -341,6 +341,11 @@ namespace RhythmHeavenMania.Games.RhythmRally
inPose = true;
}
public void ChangeCameraAngle(Vector3 rotation, float length, Ease ease, RotateMode rotateMode)
{
cameraPivot.DORotate(rotation, length * Conductor.instance.secPerBeat, rotateMode).SetEase(ease);
}
public void PrepareFastRally(float beat, RallySpeed speedChange)
{
if (speedChange == RallySpeed.Fast)

View File

@ -1,6 +1,7 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using RhythmHeavenMania.Util;
@ -326,6 +327,15 @@ namespace RhythmHeavenMania
new GameAction("fast rally", delegate { RhythmRally.instance.PrepareFastRally(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.Fast); }, 6f),
new GameAction("superfast rally", delegate { RhythmRally.instance.PrepareFastRally(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.SuperFast); }, 12f),
new GameAction("pose", delegate { RhythmRally.instance.Pose(); }, 0.5f),
new GameAction("camera", delegate {
var e = eventCaller.currentEntity;
var rotation = new Vector3(0, e.valA, 0);
RhythmRally.instance.ChangeCameraAngle(rotation, e.length, (Ease)e.type, (RotateMode)e.type2);
}, 4, true, new List<Param>() {
new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Angle"),
new Param("type", Ease.Linear, "Ease"),
new Param("type2", RotateMode.Fast, "Rotation Mode")
} ),
}),
new Minigame("builtToScaleDS", "Built To Scale (DS) \n<color=#eb5454>[WIP don't use]</color>", "00BB00", true, false, new List<GameAction>()
{