설비 KPI UI 기능 및 디자인 수정

This commit is contained in:
정영민
2025-04-24 14:22:35 +09:00
parent cc25752a61
commit ead94f28e2
31 changed files with 246521 additions and 25582 deletions

View File

@@ -153,6 +153,9 @@ namespace CHN
if (!rectB.gameObject.activeSelf)
return false;
if (!rectA.gameObject.activeSelf)
return false;
Rect rectAWorld = GetWorldRect(rectA);
Rect rectBWorld = GetWorldRect(rectB);
@@ -186,11 +189,9 @@ namespace CHN
var layerMask = LayerMask.GetMask("Camera", "Floor Wall");
var currentFloor = FindSingle<Building>().currentFloor;
var max = cam.option.maxDistance - cam.option.minDistance;
var distance = cam.option.currentDistance;
var distanceScale = (max - distance) / max;
distanceScale *= scaleClamp;
distanceScale = Mathf.Clamp(distanceScale, minScale, maxScale);
float t = Mathf.InverseLerp(cam.option.maxDistance, 0f, cam.option.currentDistance);
float scale = Mathf.Lerp(minScale, maxScale, t);
var newScale = new Vector3(scale, scale, scale);
foreach (var machine in matchingMachines)
{
@@ -202,7 +203,7 @@ namespace CHN
MachineKPIsActive(machine, layerMask);
var machineKPI = machine.machineKPI;
machineKPI.transform.localScale = originScale * distanceScale;
machineKPI.transform.localScale = newScale;
}
}
bool IsScreenRange(Machine machine)

View File

@@ -8,42 +8,37 @@ using WI;
using System;
using static MQTT;
using CHN;
using System.Globalization;
public class UI_MachineKPI : UIBase, IPointerClickHandler
{
public SimpleField data;
public CompleteInfo completeInfoData;
public RectTransform DefaultKPI;
public RectTransform DetailsKPI;
private TextMeshProUGUI Default_machineName;
private TextMeshProUGUI Details_machineName;
private TextMeshProUGUI Default_eorate;
private TextMeshProUGUI Details_eorate;
private TextMeshProUGUI MachineName;
private TextMeshProUGUI eorate;
private TextMeshProUGUI daynight;
private TextMeshProUGUI workcd;
private TextMeshProUGUI porate;
private TextMeshProUGUI goodqtyrate;
private TextMeshProUGUI workdt;
public bool isExpand;
private float eorate;
public string secondaryFontName = "PretendardVariable SDF";
public Action<UI_MachineKPI> onClickKPI;
public void SetData(SimpleField data)
{
this.data = data;
SetKPIData(data.kpiDataInfo);
SetMQTTData(data.machineInfo);
DetailsKPI.gameObject.SetActive(false);
}
private void SetKPIData(UsageKPIData kpiData)
{
eorate = DecimalPointCalculate(data.kpiDataInfo.eorate);
Default_eorate.SetText(eorate.ToString() + "%");
Details_eorate.SetText(eorate.ToString() + "%");
eorate.SetText(DecimalPointCalculate(data.kpiDataInfo.eorate).ToString() + "%");
daynight.SetText(data.machineInfo.daynight);
workcd.SetText(data.machineInfo.workcd);
goodqtyrate.SetText(DecimalPointCalculate(data.kpiDataInfo.goodqtyrate).ToString() + "%");
porate.SetText(DecimalPointCalculate(data.kpiDataInfo.porate).ToString() +"%");
goodqtyrate.SetText(DecimalPointCalculate(data.kpiDataInfo.goodqtyrate).ToString());
porate.SetText(DecimalPointCalculate(data.kpiDataInfo.porate).ToString());
var workdate = CorrectionTime(data.machineInfo.workdt, "yyyy-MM-dd");
MachineName.SetText(ApplyDualFont(data.machineInfo.worknm, workdate, secondaryFontName));
}
private bool CheckDataExists(string value)
{
@@ -53,11 +48,6 @@ public class UI_MachineKPI : UIBase, IPointerClickHandler
}
return true;
}
public void SetMQTTData(UsageMQTTData mqttData)
{
Default_machineName.SetText(mqttData.worknm);
Details_machineName.SetText(mqttData.worknm);
}
private float DecimalPointCalculate(string value)
{
if (!CheckDataExists(value))
@@ -70,6 +60,19 @@ public class UI_MachineKPI : UIBase, IPointerClickHandler
return floatValue;
}
private string CorrectionTime(string value, string dateForm)
{
DateTime.TryParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate);
return parsedDate.ToString(dateForm);
}
string ApplyDualFont(string originText, string addText, string fontName)
{
string result = originText;
result += $"<font=\"{fontName}\"><size=\"10f\">({addText})</size></font>";
return result;
}
public void OnPointerClick(PointerEventData eventData)
{
onClickKPI?.Invoke(this);
@@ -81,8 +84,6 @@ public class UI_MachineKPI : UIBase, IPointerClickHandler
}
public void Deactive()
{
DefaultKPI.gameObject.SetActive(true);
DetailsKPI.gameObject.SetActive(false);
isExpand = false;
gameObject.SetActive(false);