Files
FueraDeEscala/Assets/Game Kit Controller/Scripts/Stats System/showValuesOnScreenSystem.cs
Robii Aragon 779f2c8b20 add ckg
plantilla base para movimiento básico
2026-02-05 05:07:55 -08:00

124 lines
2.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class showValuesOnScreenSystem : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public bool showValueEnabled = true;
public bool addExtraString;
public string extraString;
public bool addExtraStringAtStart;
[Space]
[Header ("Stats Settings")]
[Space]
public string statNameToShow;
public bool showStatValueOnStart;
[Space]
[Header ("Inventory Settings")]
[Space]
public string inventoryObjectNameToShow;
public bool showInventoryObjectAmountOnStart;
[Space]
[Header ("HUD Settings")]
[Space]
public GameObject valueTextPanel;
public Text valueText;
public GameObject playerGameObject;
bool panelActive;
void Start ()
{
if (!showValueEnabled) {
if (valueTextPanel.activeSelf) {
valueTextPanel.SetActive (false);
}
}
if (showStatValueOnStart || showInventoryObjectAmountOnStart) {
StartCoroutine (showValueOnStartCoroutine ());
}
}
public void showInventoryObjectAmountByName ()
{
if (inventoryObjectNameToShow != "") {
float newValue = GKC_Utils.getInventoryObjectAmountByName (inventoryObjectNameToShow, playerGameObject);
if (newValue > -1) {
updateValueAmount (newValue);
}
}
}
public void showStatByName ()
{
if (statNameToShow != "") {
float newValue = GKC_Utils.getStateValueByName (statNameToShow, playerGameObject);
if (newValue > -1) {
updateValueAmount (newValue);
}
}
}
public void updateValueAmount (int IDValue, float newValue)
{
updateValueAmount (newValue);
}
public void updateValueAmount (float newValue)
{
if (!showValueEnabled) {
return;
}
if (!panelActive) {
if (!valueTextPanel.activeSelf) {
valueTextPanel.SetActive (true);
}
panelActive = true;
}
string valueString = newValue.ToString ();
if (addExtraString) {
if (addExtraStringAtStart) {
valueString = extraString + valueString;
} else {
valueString += extraString;
}
}
valueText.text = valueString;
}
IEnumerator showValueOnStartCoroutine ()
{
WaitForSeconds delay = new WaitForSeconds (0.3f);
yield return delay;
if (showInventoryObjectAmountOnStart) {
showInventoryObjectAmountByName ();
}
if (showStatValueOnStart) {
showStatByName ();
}
}
}