107 lines
3.4 KiB
C#
107 lines
3.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using TMPro;
|
|
using Lemon.GenericLib.Generics;
|
|
|
|
public class BoardUIScript : MonoBehaviour
|
|
{
|
|
[Header("Runtime")]
|
|
[SerializeField] private float currentComboCountdown;
|
|
[SerializeField] private float currentWarningCountdown;
|
|
[SerializeField] private float scoreTextOriginY;
|
|
[SerializeField] private float comboTextOriginY;
|
|
[SerializeField] private float warningTextOriginY;
|
|
|
|
[Header("Refrences")]
|
|
[SerializeField] private TextMeshPro titleTMP;
|
|
[SerializeField] private TextMeshPro scoreTMP;
|
|
[SerializeField] private TextMeshPro comboTMP;
|
|
[SerializeField] private TextMeshPro warningTMP;
|
|
[SerializeField] private GameObject warningOBJ;
|
|
[SerializeField] private GameObject comboOBJ;
|
|
[SerializeField] private int playerIndex;
|
|
[SerializeField] private float scoreJumpDistance = 0.25f;
|
|
[SerializeField] private float scoreJumpTime = 0.5f;
|
|
[SerializeField] private float comboUITimer = 3f;
|
|
[SerializeField] private float warningUITimer = 3f;
|
|
|
|
private bool initialized = false;
|
|
|
|
private void CheckInit()
|
|
{
|
|
if (!initialized)
|
|
{
|
|
//initialization code here
|
|
titleTMP.text = "Player " + playerIndex;
|
|
scoreTMP.text = "0";
|
|
comboTMP.text = "x0";
|
|
warningTMP.text = "x0";
|
|
warningOBJ.SetActive(false);
|
|
comboOBJ.SetActive(false);
|
|
scoreTextOriginY = scoreTMP.transform.localPosition.y;
|
|
comboTextOriginY = comboTMP.transform.localPosition.y;
|
|
warningTextOriginY = warningTMP.transform.localPosition.y;
|
|
initialized = true;
|
|
}
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
CheckInit();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
|
|
if (currentComboCountdown <= 0)
|
|
{
|
|
comboTMP.text = "x0";
|
|
comboOBJ.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
currentComboCountdown -= Time.deltaTime;
|
|
}
|
|
|
|
|
|
|
|
if (currentWarningCountdown <= 0)
|
|
{
|
|
warningTMP.text = "x0";
|
|
warningOBJ.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
currentWarningCountdown -= Time.deltaTime;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public void SetScore(int value) {
|
|
scoreTMP.transform.LeanMoveLocalY(scoreTextOriginY + scoreJumpDistance, scoreJumpTime).setLoopPingPong(1).setEase(LeanTweenType.easeOutQuad).setOnComplete(() => scoreTMP.transform.LeanMoveLocalY( scoreTextOriginY,0));
|
|
scoreTMP.text = value.ToString();
|
|
}
|
|
|
|
|
|
public void SetCombo(int value)
|
|
{
|
|
currentComboCountdown = comboUITimer;
|
|
comboTMP.text = "x" + value;
|
|
comboOBJ.SetActive(true);
|
|
comboTMP.transform.LeanMoveLocalY(comboTextOriginY + scoreJumpDistance, scoreJumpTime).setLoopPingPong(1).setEase(LeanTweenType.easeOutQuad).setOnComplete(() => comboTMP.transform.LeanMoveLocalY(comboTextOriginY, 0));
|
|
}
|
|
|
|
public void SetWarning(int value)
|
|
{
|
|
currentWarningCountdown = warningUITimer;
|
|
warningTMP.text = "x" + value;
|
|
warningOBJ.SetActive(true);
|
|
warningTMP.transform.LeanMoveLocalY(warningTextOriginY + scoreJumpDistance, scoreJumpTime).setLoopPingPong(1).setEase(LeanTweenType.easeOutQuad).setOnComplete(() => warningTMP.transform.LeanMoveLocalY(warningTextOriginY, 0));
|
|
}
|
|
|
|
|
|
|
|
}
|