using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 接线 /// </summary> public class Tool_Line: Tool_Base { /// <summary> /// 是否接上 /// </summary> public bool isConnected; /// <summary> /// 标识 /// </summary> public string id; /// <summary> /// 固定接线的螺丝 /// </summary> public List<Tool_Screw> screws=new List<Tool_Screw>(); /// <summary> /// 安装状态时Y的local值 /// </summary> public float InstallPosY; private Action<bool> actionBack; //protected override void OnAwake() //{ // base.OnAwake(); // id = gameObject.name; //} public void AddAction(Action<bool> actionBack) { this.actionBack = actionBack; } protected override void OnMDown() { if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0) { base.OnMDown(); if (isConnected) { //取下接线 if (screws.TrueForAll(a => !a.isInstall)) { transform.DOLocalMoveY(InstallPosY - 2, 1).OnComplete(() => { isConnected = false; actionBack?.Invoke(isConnected); int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true)); CallScoreAction(false); }); } } else { //装上接线 if (screws.TrueForAll(a => !a.isInstall)) { transform.DOLocalMoveY(InstallPosY, 1).OnComplete(() => { isConnected = true; actionBack?.Invoke(isConnected); int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true)); CallScoreAction(true); }); } } } } }