using UnityEngine; using UnityEngine.InputSystem; public class TimerOnInactiveScript : MonoBehaviour { [SerializeField] float _ValueTargetTime = 30.0f; [SerializeField] private Animator _Animator; [SerializeField] GameObject _UIActive; [SerializeField] GameObject _UIInactive; [SerializeField] private float _TargetTime; private bool _CanMoveFrom; private void Awake() { _CanMoveFrom = false; _TargetTime = _ValueTargetTime; } private void Update() { _TargetTime -= Time.deltaTime; if (_TargetTime <= 0.0f) { //Debug.Log("Таймер Закончился"); _CanMoveFrom = true; MoveCameraToRound(); } InputSystem.onActionChange += (obj, change) => { if (change == InputActionChange.ActionPerformed) { ResetTimer(); MoveCameraFromRound(); } }; //ResetTimer(); //MoveCameraFromRound(); //if (Gamepad.current.) //{ // //Debug.Log("кнопка нажата"); // ResetTimer(); // MoveCameraFromRound(); //} } void MoveCameraToRound() { _UIActive.SetActive(false); //Debug.Log("Переместился к"); _Animator.Play("MoveCameraToRound"); } void MoveCameraFromRound() { if (_CanMoveFrom) { _UIInactive.SetActive(false); _Animator.Play("MoveCameraFromRound"); //Debug.Log("Переместился от"); ResetTimer(); } } public void SetActiveInactive() { _UIInactive.SetActive(true); } public void SetActiveActive() { _UIActive.SetActive(true); } void ResetTimer() { _TargetTime = _ValueTargetTime; } }