diff --git a/.gitattributes b/.gitattributes index 36146522..fe3b507a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ +# AUDIO *.wav filter=lfs diff=lfs merge=lfs -text *.mp3 filter=lfs diff=lfs merge=lfs -text *.ogg filter=lfs diff=lfs merge=lfs -text @@ -5,3 +6,39 @@ *.bnk filter=lfs diff=lfs merge=lfs -text *.aif filter=lfs diff=lfs merge=lfs -text *.aiff filter=lfs diff=lfs merge=lfs -text + +# 3D MODELS +*.fbx filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.ma filter=lfs diff=lfs merge=lfs -text +*.mb filter=lfs diff=lfs merge=lfs -text +*.3ds filter=lfs diff=lfs merge=lfs -text +*.dae filter=lfs diff=lfs merge=lfs -text + +# TEXTURES / IMAGES +*.png filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.tif filter=lfs diff=lfs merge=lfs -text +*.tiff filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text +*.hdr filter=lfs diff=lfs merge=lfs -text + +# VIDEO +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text +*.avi filter=lfs diff=lfs merge=lfs -text + +# UNITY HEAVY ASSETS +*.unitypackage filter=lfs diff=lfs merge=lfs -text + +# UNITY YAML MERGE (IMPORTANT) +*.meta merge=unityyamlmerge eol=lf +*.unity merge=unityyamlmerge eol=lf +*.prefab merge=unityyamlmerge eol=lf +*.mat merge=unityyamlmerge eol=lf +*.anim merge=unityyamlmerge eol=lf +*.controller merge=unityyamlmerge eol=lf diff --git a/Assets/Unheimlich_POC/Scripts/World/Environment/InfiniteStaircaseController.cs b/Assets/Unheimlich_POC/Scripts/World/Environment/InfiniteStaircaseController.cs index 1e34f3ac..a0234f5b 100644 --- a/Assets/Unheimlich_POC/Scripts/World/Environment/InfiniteStaircaseController.cs +++ b/Assets/Unheimlich_POC/Scripts/World/Environment/InfiniteStaircaseController.cs @@ -246,15 +246,16 @@ namespace Unheimlich.World.Environment { if (_playerTransform == null) return; - float error = _playerTransform.position.y - _triggerCenterWorldY; - float rawTarget = Mathf.Clamp(error * _correctionGain, -_maxScrollSpeed, _maxScrollSpeed); + float error = _playerTransform.position.y - _triggerCenterWorldY; + float rawTarget = Mathf.Clamp(error * _correctionGain, -_maxScrollSpeed, _maxScrollSpeed); - // Only allow speed in the direction that moves the tower correctly. - // Going up (entered from below): tower must descend → speed >= 0. - // Going down (entered from above): tower must ascend → speed <= 0. - float targetSpeed = _enteredFromBelow - ? Mathf.Max(rawTarget, 0f) - : Mathf.Min(rawTarget, 0f); + bool towerHasMoved = _enteredFromBelow + ? _towerRoot != null && _towerRoot.localPosition.y < -0.05f + : _towerRoot != null && _towerRoot.localPosition.y > 0.05f; + + float targetSpeed = towerHasMoved + ? rawTarget + : (_enteredFromBelow ? Mathf.Max(rawTarget, 0f) : Mathf.Min(rawTarget, 0f)); _scrollSpeed = Mathf.SmoothDamp(_scrollSpeed, targetSpeed, ref _scrollSpeedVelocity, _scrollSmoothTime); } @@ -271,12 +272,6 @@ namespace Unheimlich.World.Environment ? Mathf.Max(pos.y, _limitLocalY) : Mathf.Min(pos.y, _limitLocalY); - // Clamp to the origin — slot 0 must never move past its starting position. - // Going up: tower can only descend from 0. Going down: tower can only ascend from 0. - pos.y = _enteredFromBelow - ? Mathf.Min(pos.y, 0f) - : Mathf.Max(pos.y, 0f); - _towerRoot.localPosition = pos; } @@ -285,8 +280,8 @@ namespace Unheimlich.World.Environment if (_towerRoot == null) return; bool reached = _enteredFromBelow - ? _towerRoot.localPosition.y <= _limitLocalY - : _towerRoot.localPosition.y >= _limitLocalY; + ? _towerRoot.localPosition.y <= _limitLocalY // going up, tower descended enough + : _towerRoot.localPosition.y >= _limitLocalY; // going down, tower ascended enough if (reached) {