HeavenStudioPlus/Assets/Scripts/Games/TotemClimb/TCGroundManager.cs
Rapandrasmus 3e20013a1a
Totem Climb (#660)
* setup

* scroll stuff

* tons of stuff

* totem bop

* bopping and new assets

* soem more

* frog fit

* fixed order of operation issue

* triple proto

* wow i love super curves

* TRIPLE JUMP

* frog fall

* the spinny

* dragon initial

* functional dragon

* fixed un bug

* the deets

* the deets have been fixed

* miss stuff

* smol fix

* no log

* fixed some issues

* switch to next state

* particle

* remove useless logic

* zoomed out

* sound and line fix

* new bg sheet

* minor tweaks

* pillar tops

* background objects

* background tweak

* triple sound tweak

* background rework

* frog wings and new jump anim

* fix

* birds

* disable pillars

* landing end

* fix again

* minor fix

* fixes and icon

* background scroll logic rework

* put in fixed sheet

* fixed sounds
2024-01-28 03:43:54 +00:00

56 lines
1.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace HeavenStudio.Games.Scripts_TotemClimb
{
public class TCGroundManager : MonoBehaviour
{
private const int GROUND_AMOUNT = 6;
[Header("Components")]
[SerializeField] private Transform _groundFirst;
[SerializeField] private Transform _groundSecond;
private List<Transform> _grounds = new();
private Transform _scrollTransform;
private float _groundDistance;
private float _groundStart;
private int _groundIndex = 0;
private void Awake()
{
_scrollTransform = transform.parent;
_groundStart = _groundFirst.localPosition.x;
_groundDistance = _groundSecond.localPosition.x - _groundFirst.localPosition.x;
_grounds.Add(_groundFirst);
_grounds.Add(_groundSecond);
for (int i = 2; i < GROUND_AMOUNT; i++)
{
Transform spawnedGround = Instantiate(_groundFirst, transform);
spawnedGround.localPosition = new Vector3(_groundStart + (_groundDistance * i), spawnedGround.localPosition.y);
_grounds.Add(spawnedGround);
}
}
private void Update()
{
float currentScrollX = _scrollTransform.localPosition.x;
float currentDistance = _groundStart + (_groundDistance * _groundIndex);
if (currentScrollX >= currentDistance + (_groundDistance * GROUND_AMOUNT / 2))
{
var g = _grounds[_groundIndex % GROUND_AMOUNT];
g.localPosition = new Vector3(g.localPosition.x + (_groundDistance * GROUND_AMOUNT), g.localPosition.y);
_groundIndex++;
}
}
}
}