using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 导电片 /// public class Device_ConductiveSheet : Device_Base { public bool isClose; /// /// 铁片固定扳手螺丝 /// public Tool_SpannerScrew screw; /// ///低压电流互感器安装触发区 /// public DeviceTrigger LowVoltageCurrentTransformer_Trigger; /// /// 低压电流互感器 /// public Device_LowVoltageCurrentTransformer transformer; /// /// 合闸关闸回调 /// public Action openOrCloseAction; protected override void OnMDown() { base.OnMDown(); if (!screw.isInstall) { if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true)) == 0) { if (isClose) { //打开 transform.DOLocalRotate(new Vector3(90, 0, 25), 0.5f).OnComplete(() => { isClose = false; openOrCloseAction?.Invoke(isClose); base.CallScoreAction(false); }); } else { //合上 transform.DOLocalRotate(new Vector3(90, 0, 0), 0.5f).OnComplete(() => { isClose = true; openOrCloseAction?.Invoke(isClose); base.CallScoreAction(true); }); } } } } /// /// 直接设置开关状态 /// /// public void SetState(bool isClose) { this.isClose = isClose; if(isClose) { //合上状态 transform.localEulerAngles = new Vector3(90, 0, 0); screw.isInstall = true; screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.initPostionY, screw.transform.localPosition.z); } else { //打开状态 transform.localEulerAngles = new Vector3(90, 0, 25); screw.isInstall = false; screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.initPostionY- 0.03f, screw.transform.localPosition.z); } } }