using System.Collections; using Movement; using UnityEngine; namespace Platforms { public class CollapsingPlatform : MonoBehaviour { private const float TimeBeforeCollapse = 2.0f; private const float TimeBeforeReset = 4.0f; private CollisionChecker _collidingTriggerCheck; private bool _onCollision; private void Awake() { _collidingTriggerCheck = GetComponentInChildren(); } private void Update() { if (!_collidingTriggerCheck.IsCollided || _onCollision) return; _onCollision = true; StartCoroutine(Collapse()); } private void ChangeState(bool state) { GetComponent().enabled = state; GetComponent().enabled = state; } private IEnumerator Collapse() { GetComponent().color = Color.red; yield return new WaitForSeconds(TimeBeforeCollapse); ChangeState(false); StartCoroutine(Reset()); } // ReSharper disable once Unity.IncorrectMethodSignature private IEnumerator Reset() { yield return new WaitForSeconds(TimeBeforeReset); _onCollision = false; GetComponent().color = Color.white; ChangeState(true); } } }