giraffe camera zoom

This commit is contained in:
Rapandrasmus 2023-10-04 21:16:39 +02:00
parent 1b55d071fb
commit 249266f6c1
2 changed files with 20 additions and 1 deletions

View file

@ -1045,6 +1045,7 @@ MonoBehaviour:
_jumpDistance: 8 _jumpDistance: 8
_jumpDistanceGiraffe: 32 _jumpDistanceGiraffe: 32
_jumpStartCameraDistance: 3 _jumpStartCameraDistance: 3
_giraffeCameraZoom: 10
--- !u!1 &9154566379104488428 --- !u!1 &9154566379104488428
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View file

@ -58,6 +58,7 @@ namespace HeavenStudio.Games
[SerializeField] private float _jumpDistance = 8; [SerializeField] private float _jumpDistance = 8;
[SerializeField] private float _jumpDistanceGiraffe = 16; [SerializeField] private float _jumpDistanceGiraffe = 16;
[SerializeField] private float _jumpStartCameraDistance = 4; [SerializeField] private float _jumpStartCameraDistance = 4;
[SerializeField] private float _giraffeCameraZoom = 5;
private List<AcrobatObstacle> _pooledElephants = new(), _pooledGiraffes = new(), _pooledMonkeysLong = new(), _pooledMonkeysShort = new(); private List<AcrobatObstacle> _pooledElephants = new(), _pooledGiraffes = new(), _pooledMonkeysLong = new(), _pooledMonkeysShort = new();
@ -98,6 +99,7 @@ namespace HeavenStudio.Games
private Util.EasingFunction.Function _funcEaseInOut; private Util.EasingFunction.Function _funcEaseInOut;
private Util.EasingFunction.Function _funcEaseIn; private Util.EasingFunction.Function _funcEaseIn;
private Util.EasingFunction.Function _funcEaseOut; private Util.EasingFunction.Function _funcEaseOut;
private Util.EasingFunction.Function _funcSharp;
public static AnimalAcrobat instance; public static AnimalAcrobat instance;
@ -107,6 +109,7 @@ namespace HeavenStudio.Games
_funcEaseInOut = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseInOutQuad); _funcEaseInOut = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseInOutQuad);
_funcEaseIn = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseInQuad); _funcEaseIn = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseInQuad);
_funcEaseOut = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseOutQuad); _funcEaseOut = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseOutQuad);
_funcSharp = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseOutQuart);
} }
private void Update() private void Update()
@ -137,7 +140,22 @@ namespace HeavenStudio.Games
float normalizedTravel = cond.GetPositionFromBeat(currentAnimal.startBeat - _cameraHoldTime, _cameraHoldTime); float normalizedTravel = cond.GetPositionFromBeat(currentAnimal.startBeat - _cameraHoldTime, _cameraHoldTime);
float newX = Mathf.Lerp(_lastCameraX, _lastCameraX + distance, normalizedTravel); 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; return;
} }