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(); } } }