using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; /// /// 电能表校验仪 /// public class Tool_ElectricEnergyMeterCalibrationInstrument : MonoBehaviour { /// /// 电能表校验仪器盖子 /// public DeviceTrigger gaizi; public bool isOpen = false; /// /// 线材交互区域 /// public DeviceTrigger xianCaiJiaoHu; /// /// 校验仪交互区域 /// public DeviceTrigger jiaoYanYiJiaoHu; /// /// 收回按钮 /// public DeviceTrigger recoverJianYanYi; public Collider[] allCollider; public ThreePhaseEnergyMeterCalibrator threePhaseEnergyMeterCalibrator; public TPEMLineController tPEMLineController; void Awake() { gaizi.clickAction += () => { if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(gaizi.triggerName, true) == 0) { if (!tPEMLineController.isCheck) OpenGaiZi(); } }; xianCaiJiaoHu.clickAction += () => { if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(xianCaiJiaoHu.triggerName, true) == 0) tPEMLineController.CheckLine(); }; jiaoYanYiJiaoHu.clickAction += () => { if (LiveSceneManager.Instance?.currentTool == null) { if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(jiaoYanYiJiaoHu.triggerName, true) == 0) threePhaseEnergyMeterCalibrator.SwitchPos(); } }; recoverJianYanYi.Awake(); recoverJianYanYi.gameObject.SetActive(false); recoverJianYanYi.clickAction += () => { if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(recoverJianYanYi.triggerName, true) == 0) { Destroy(gameObject); } }; gaizi.transform.localEulerAngles = new Vector3(0, 0, 0); } private void Start() { if (!isOpen) recoverJianYanYi.gameObject.SetActive(true); } /// /// 0-手动开关盖子,1-自动开盖子 /// public void OpenGaiZi(int state = 0) { if (state == 0) { isOpen = !isOpen; if (isOpen) gaizi.transform.DOLocalRotate(new Vector3(-90f, 0, 0), 0.5f).OnComplete(() => { SwitchAllCollider(true); }); else gaizi.transform.DOLocalRotate(new Vector3(0, 0, 0), 0.5f).OnComplete(() => { SwitchAllCollider(false); }); recoverJianYanYi.gameObject.SetActive(!isOpen); } else { isOpen = true; gaizi.transform.localEulerAngles = new Vector3(-90f, 0, 0); SwitchAllCollider(true); } } private void SwitchAllCollider(bool isEnable) { for (int i = 0; i < allCollider.Length; i++) { allCollider[i].enabled = isEnable; } } /// ///点击线材交互区域 /// public void OnClickXianCaiJiaoHu() { } private void OnDestroy() { UIManager.Instance.toolTips.HideTips(); } }