96 lines
3.1 KiB
C#
96 lines
3.1 KiB
C#
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Samkwang
|
|
{
|
|
public class UI_MachineEffectivenessItem : MonoBehaviour
|
|
{
|
|
private List<Image> barImages = new List<Image>();
|
|
public Image BarGraph;
|
|
public Image Image_Green;
|
|
public Image Image_Red;
|
|
public Image Image_Yellow;
|
|
public Image Image_Gray;
|
|
|
|
public TextMeshProUGUI MachineName;
|
|
public float maxBarHeight;
|
|
public void Init()
|
|
{
|
|
var imageDict = transform.GetChildComponentsByName<Image>();
|
|
|
|
BarGraph = imageDict.GetOrNull(nameof(BarGraph));
|
|
Image_Green = imageDict.GetOrNull(nameof(Image_Green));
|
|
Image_Red = imageDict.GetOrNull(nameof(Image_Red));
|
|
Image_Yellow = imageDict.GetOrNull(nameof(Image_Yellow));
|
|
Image_Gray = imageDict.GetOrNull(nameof(Image_Gray));
|
|
|
|
MachineName = transform.GetComponentInChildren<TextMeshProUGUI>(true);
|
|
|
|
barImages.Add(Image_Green);
|
|
barImages.Add(Image_Red);
|
|
barImages.Add(Image_Yellow);
|
|
barImages.Add(Image_Gray);
|
|
}
|
|
public void SetEffectivness(string effectivnessValue, string machineName, string machineStatus)
|
|
{
|
|
var height = (StringConvertFloat(effectivnessValue) / 100f) * maxBarHeight;
|
|
BarGraph.rectTransform.sizeDelta = new Vector2(BarGraph.rectTransform.sizeDelta.x, height);
|
|
SetBarGraphColor(machineStatus);
|
|
|
|
SetMachineName(machineName);
|
|
}
|
|
private void SetMachineName(string machineName)
|
|
{
|
|
MachineName.SetText(machineName);
|
|
}
|
|
private float StringConvertFloat(string value)
|
|
{
|
|
float.TryParse(value, out var floatValue);
|
|
|
|
if (floatValue > 100f)
|
|
{
|
|
floatValue = 100f;
|
|
}
|
|
|
|
return floatValue;
|
|
}
|
|
private void SetBarGraphColor(string machineStatus)
|
|
{
|
|
switch (machineStatus)
|
|
{
|
|
case "°¡µ¿Áß":
|
|
Image_Green.transform.SetAsLastSibling();
|
|
SetBarGraphChange(Image_Green);
|
|
break;
|
|
case "ºñ°¡µ¿":
|
|
Image_Red.transform.SetAsLastSibling();
|
|
SetBarGraphChange(Image_Red);
|
|
break;
|
|
case "°èȹÁ¤Áö":
|
|
Image_Gray.transform.SetAsLastSibling();
|
|
SetBarGraphChange(Image_Gray);
|
|
break;
|
|
default:
|
|
Image_Yellow.transform.SetAsLastSibling();
|
|
SetBarGraphChange(Image_Yellow);
|
|
break;
|
|
}
|
|
}
|
|
private void SetBarGraphChange(Image currentBarImage)
|
|
{
|
|
foreach (var barImage in barImages)
|
|
{
|
|
barImage.gameObject.SetActive(false);
|
|
|
|
if (barImage == currentBarImage)
|
|
{
|
|
barImage.gameObject.SetActive(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|