From 249266f6c1e55e1384fe269804398a8c2f7ef86b Mon Sep 17 00:00:00 2001 From: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Wed, 4 Oct 2023 21:16:39 +0200 Subject: [PATCH] giraffe camera zoom --- Assets/Resources/Games/animalAcrobat.prefab | 1 + .../Games/AnimalAcrobat/AnimalAcrobat.cs | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Assets/Resources/Games/animalAcrobat.prefab b/Assets/Resources/Games/animalAcrobat.prefab index 926875e20..e93bd3384 100644 --- a/Assets/Resources/Games/animalAcrobat.prefab +++ b/Assets/Resources/Games/animalAcrobat.prefab @@ -1045,6 +1045,7 @@ MonoBehaviour: _jumpDistance: 8 _jumpDistanceGiraffe: 32 _jumpStartCameraDistance: 3 + _giraffeCameraZoom: 10 --- !u!1 &9154566379104488428 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Games/AnimalAcrobat/AnimalAcrobat.cs b/Assets/Scripts/Games/AnimalAcrobat/AnimalAcrobat.cs index d53c8be5c..1de106618 100644 --- a/Assets/Scripts/Games/AnimalAcrobat/AnimalAcrobat.cs +++ b/Assets/Scripts/Games/AnimalAcrobat/AnimalAcrobat.cs @@ -58,6 +58,7 @@ namespace HeavenStudio.Games [SerializeField] private float _jumpDistance = 8; [SerializeField] private float _jumpDistanceGiraffe = 16; [SerializeField] private float _jumpStartCameraDistance = 4; + [SerializeField] private float _giraffeCameraZoom = 5; private List _pooledElephants = new(), _pooledGiraffes = new(), _pooledMonkeysLong = new(), _pooledMonkeysShort = new(); @@ -98,6 +99,7 @@ namespace HeavenStudio.Games private Util.EasingFunction.Function _funcEaseInOut; private Util.EasingFunction.Function _funcEaseIn; private Util.EasingFunction.Function _funcEaseOut; + private Util.EasingFunction.Function _funcSharp; public static AnimalAcrobat instance; @@ -107,6 +109,7 @@ namespace HeavenStudio.Games _funcEaseInOut = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseInOutQuad); _funcEaseIn = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseInQuad); _funcEaseOut = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseOutQuad); + _funcSharp = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseOutQuart); } private void Update() @@ -137,7 +140,22 @@ namespace HeavenStudio.Games float normalizedTravel = cond.GetPositionFromBeat(currentAnimal.startBeat - _cameraHoldTime, _cameraHoldTime); float newX = Mathf.Lerp(_lastCameraX, _lastCameraX + distance, normalizedTravel); - _scroll.localPosition = new Vector3(-newX, 0, 0); + float newZ = 0; + if (_lastCameraAnimalWasGiraffe) + { + if (normalizedTravel < 0.5) + { + float normalizedOut = Mathf.Clamp01(cond.GetPositionFromBeat(currentAnimal.startBeat - _cameraHoldTime, 1)); + newZ = _funcSharp(0, _giraffeCameraZoom, normalizedOut); + } + else + { + float normalizedIn = Mathf.Clamp01(cond.GetPositionFromBeat(currentAnimal.startBeat - _cameraHoldTime + 3, 1)); + newZ = _funcEaseOut(_giraffeCameraZoom, 0, normalizedIn); + } + } + + _scroll.localPosition = new Vector3(-newX, 0, newZ); return; }