설비 상세 대시 보드 기능 추가
This commit is contained in:
@@ -26,7 +26,8 @@ namespace CHN
|
||||
public Vector3 originScale;
|
||||
public float verticalSpacing = 100f;
|
||||
|
||||
public Action<Machine> onClickKPI;
|
||||
public Action<Machine> onClickKPIToMachine;
|
||||
public Action<SimpleField> onClickKPIToData;
|
||||
|
||||
[Range(0.1f, 0.8f)]
|
||||
public float minScale;
|
||||
@@ -34,34 +35,38 @@ namespace CHN
|
||||
public float maxScale;
|
||||
[Range(0.1f, 2f)]
|
||||
public float scaleClamp;
|
||||
public void SetMachineKPI(MachineKPIData machineKPIData)
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
foreach (var item in machineKPIs)
|
||||
{
|
||||
Destroy(item.Value.gameObject);
|
||||
}
|
||||
uiElements.Clear();
|
||||
machineKPIs.Clear();
|
||||
matchingMachines.Clear();
|
||||
kpiToMachines.Clear();
|
||||
|
||||
}
|
||||
public void SetMachineKPI(List<SimpleField> machineData)
|
||||
{
|
||||
cam = FindSingle<OrbitalController>();
|
||||
prefab_MachineKPI = Resources.Load<UI_MachineKPI>("Prefabs/UI/PRF_UI_MachineKPI");
|
||||
|
||||
foreach (var data in machineKPIData.data.rows)
|
||||
{
|
||||
if (machineKPIs.ContainsKey(data.workcd))
|
||||
continue;
|
||||
Clear();
|
||||
|
||||
foreach (var data in machineData)
|
||||
{
|
||||
if (machineKPIs.ContainsKey(data.machineName))
|
||||
{
|
||||
machineKPIs[data.machineName].SetData(data);
|
||||
uiElements.Add(machineKPIs[data.machineName].rectTransform);
|
||||
continue;
|
||||
}
|
||||
|
||||
var machineKPI = Instantiate(prefab_MachineKPI, transform);
|
||||
machineKPI.SetData(data);
|
||||
machineKPI.onClickKPI += OnClickMachineKPI;
|
||||
machineKPI.name = data.workcd;
|
||||
machineKPI.name = data.machineName;
|
||||
machineKPI.SetActive(false);
|
||||
uiElements.Add(machineKPI.rectTransform);
|
||||
|
||||
kpis.Add(machineKPI);
|
||||
machineKPIs.Add(data.workcd, machineKPI);
|
||||
machineKPIs.Add(data.machineName, machineKPI);
|
||||
}
|
||||
|
||||
var building = FindSingle<Building>();
|
||||
@@ -83,38 +88,15 @@ namespace CHN
|
||||
}
|
||||
private void OnClickMachineKPI(UI_MachineKPI machineKPI)
|
||||
{
|
||||
foreach(var machine in machines)
|
||||
{
|
||||
if (machine.machineKPI != null)
|
||||
{
|
||||
machine.machineKPI.Shrink();
|
||||
}
|
||||
}
|
||||
machineKPI.transform.SetAsLastSibling();
|
||||
var currentMachine = kpiToMachines[machineKPI];
|
||||
current_MachineKPI = machineKPI;
|
||||
current_MachineKPI.Expand();
|
||||
current_MachineKPI.transform.SetAsLastSibling();
|
||||
onClickKPI?.Invoke(currentMachine);
|
||||
onClickKPIToMachine?.Invoke(currentMachine);
|
||||
onClickKPIToData?.Invoke(machineKPI.data);
|
||||
}
|
||||
private void Update()
|
||||
{
|
||||
GroupOverlappingUIElements();
|
||||
RangeDetection();
|
||||
RectangleContainsPoint();
|
||||
}
|
||||
private void RectangleContainsPoint()
|
||||
{
|
||||
if (Input.GetMouseButton(0))
|
||||
{
|
||||
if (current_MachineKPI == null)
|
||||
return;
|
||||
|
||||
if(!RectTransformUtility.RectangleContainsScreenPoint(current_MachineKPI.DetailsKPI, Input.mousePosition))
|
||||
{
|
||||
current_MachineKPI.Shrink();
|
||||
current_MachineKPI = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
public List<RectTransform> uiElements = new List<RectTransform>();
|
||||
public List<List<RectTransform>> groupedElements = new List<List<RectTransform>>();
|
||||
@@ -168,6 +150,9 @@ namespace CHN
|
||||
}
|
||||
private bool AreRectanglesOverlapping(RectTransform rectA, RectTransform rectB)
|
||||
{
|
||||
if (!rectB.gameObject.activeSelf)
|
||||
return false;
|
||||
|
||||
Rect rectAWorld = GetWorldRect(rectA);
|
||||
Rect rectBWorld = GetWorldRect(rectB);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user