105 lines
2.7 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
|