Files
ChunilENG/Assets/WorkSpace/Review/UI_WorkAnalysis.cs
정영민 2dd5d814a7 update
2025-02-20 09:59:37 +09:00

105 lines
2.7 KiB
C#

using CHN;
using System;
using System.Collections;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using WI;
namespace CHN
{
public class UI_WorkAnalysis : UIBase
{
private Machine prevMachine;
private bool isPlay;
public float fadeTime;
public Button Button_WorkConditionAnalysis;
public Button Button_WorkTimeAnalysis;
public Action onClickWorkConditionAnalysis;
public Action onClickWorkTimeAnalysis;
public override void AfterAwake()
{
Button_WorkTimeAnalysis.onClick.AddListener(OnClickWorkTimeAnalysis);
Button_WorkConditionAnalysis.onClick.AddListener(OnClickWorkConditionAnalysis);
}
public void SetAnimation(Machine machine)
{
if (prevMachine != null)
{
if (prevMachine.Equals(machine))
{
return;
}
if (!prevMachine.Equals(machine))
{
DeActive();
}
}
SetActive(true);
prevMachine = machine;
var pos = Camera.main.WorldToScreenPoint(prevMachine.transform.position);
transform.position = pos;
isPlay = true;
StopAllCoroutines();
StartCoroutine(ScaleUp());
}
private void Update()
{
if (!isPlay)
return;
bool rightstayClick = Input.GetMouseButton(1);
if (rightstayClick)
{
//머신 클릭 상태에서 움직일때
var mouseY = Input.GetAxis("Mouse Y");
if (!Mathf.Approximately(mouseY, 0f))
{
DeActive();
return;
}
}
var pos = Camera.main.WorldToScreenPoint(prevMachine.transform.position);
transform.position = pos;
}
public void DeActive()
{
prevMachine = null;
isPlay = false;
transform.localScale = Vector3.zero;
SetActive(false);
}
IEnumerator ScaleUp()
{
float timer = 0f;
float percent = 0f;
while (percent < 1)
{
timer += Time.deltaTime;
percent = timer / fadeTime;
transform.localScale = Vector3.Lerp(transform.localScale, Vector3.one, percent);
yield return null;
}
}
private void OnClickWorkConditionAnalysis()
{
onClickWorkConditionAnalysis?.Invoke();
}
private void OnClickWorkTimeAnalysis()
{
onClickWorkTimeAnalysis?.Invoke();
}
}
}