using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 柜门 /// public class Device_CabinetDoor : Device_Base { /// /// 验电位置 /// public Transform testPosAndRot; /// /// 是否打开 /// public bool isOpen; /// /// 是否带点 /// public bool hasElectricity; public void Open() { Debug.Log("开门"); startAction?.Invoke(); //开锁 transform.Find("计量柜锁2/计量柜锁3").DOLocalRotate(new Vector3(-45f, 0, 0), 1).OnComplete(() => { //开门 transform.DOLocalRotate(new Vector3(0, 0, 180), 3).OnComplete(() => { isOpen = true; int result = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true)); endAction?.Invoke(); }); }); } public void Close() { Debug.Log("关门"); startAction?.Invoke(); //关门 transform.DOLocalRotate(new Vector3(0, 0, 0), 3).OnComplete(() => { //关锁 transform.Find("计量柜锁2/计量柜锁3").DOLocalRotate(new Vector3(0, 0, 0), 1).OnComplete(() => { isOpen = false; int result = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true)); endAction?.Invoke(); }); }); } protected override void OnMDown() { if (LiveSceneManager.Instance.currentTool != null && LiveSceneManager.Instance.currentTool.name == "验电笔") return; if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0) { base.OnMDown(); if (isOpen) { Close(); } else { Open(); } } } /// /// 门打开状态 /// public void OpenState() { SiteManager.instance.measuringCabinet.cabinetDoor.isOpen = true; SiteManager.instance.measuringCabinet.cabinetDoor.transform.localEulerAngles = new Vector3(0, 0, 180); SiteManager.instance.measuringCabinet.cabinetDoor.transform.Find("计量柜锁2/计量柜锁3").localEulerAngles = new Vector3(-45f, 0, 0); } /// /// 门关闭状态 /// public void CloseState() { isOpen = false; transform.localEulerAngles = Vector3.zero; transform.Find("计量柜锁2/计量柜锁3").localEulerAngles = Vector3.zero; } }