feat: hide title when game starts

This commit is contained in:
Gerard Gascón 2024-04-15 17:50:28 +02:00
parent 0bed7bbea4
commit 58ec07b1a0
5 changed files with 42 additions and 8 deletions

View file

@ -13,7 +13,10 @@ namespace View {
Model = new Model(0);
IExpressionInput input = FindObjectOfType<ExpressionInput>();
ExpressionClick = new ExpressionClick(Model, input);
IExpressionInput visibility = FindObjectOfType<UIVisibility>();
IExpressionInput inputCollections = new ExpressionInputCollection(new[] { input, visibility });
ExpressionClick = new ExpressionClick(Model, inputCollections);
CustomInput = new CustomInput();
}

View file

@ -0,0 +1,16 @@
using Presenter;
namespace View {
public class ExpressionInputCollection : IExpressionInput {
private readonly IExpressionInput[] _inputs;
public ExpressionInputCollection(IExpressionInput[] inputs) {
_inputs = inputs;
}
public void UpdateView(int score) {
foreach (IExpressionInput input in _inputs)
input.UpdateView(score);
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ae095e86bb524331a6f001ba71000218
timeCreated: 1713195784

View file

@ -1,31 +1,41 @@
using System;
using DG.Tweening;
using Presenter;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace View {
public class UIVisibility : MonoBehaviour {
public class UIVisibility : MonoBehaviour, IExpressionInput {
[SerializeField] private CanvasGroup ui;
[SerializeField] private float fadeDuration = .5f;
[Space]
[SerializeField] private Image titleImage;
[SerializeField] private float titleFadeDuration = 1f;
private bool _wasVisible = true;
private bool _titleVisible = true;
private Tween _fadeTween;
private void Update() {
bool isPointerOver = EventSystem.current.IsPointerOverGameObject();
if (_wasVisible && !isPointerOver) {
_fadeTween?.Kill();
_fadeTween = ui.DOFade(0, fadeDuration).SetDelay(5f);
_wasVisible = false;
return;
}
if (!_wasVisible && isPointerOver) {
} else if (!_wasVisible && isPointerOver) {
_fadeTween?.Kill();
_fadeTween = ui.DOFade(1, fadeDuration);
_wasVisible = true;
return;
}
}
public void UpdateView(int score) {
if (!_titleVisible) return;
_titleVisible = false;
titleImage.DOFade(0, titleFadeDuration);
}
}
}