edit: made board UI prefabs

This commit is contained in:
Iced-lemon 2023-01-29 14:57:08 +08:00
parent 594690545b
commit c98652c00f
27 changed files with 3759 additions and 313 deletions

View file

@ -12,9 +12,9 @@ namespace Lemon.GenericLib.Generics
public bool Enabled => enabled;
public T Value => value;
public Optional(T initialValue)
public Optional(T initialValue, bool start)
{
enabled = true;
enabled = start;
value = initialValue;
}
public void Set(T initialValue)

View file

@ -0,0 +1,106 @@
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));
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f89c54e527a19704197d23e16e9d61a7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: