using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using AX.MessageSystem; using AX.InputSystem; public class CloneButton : BaseToggle { public CloneObjType cloneObjType; /// /// 破拆门类型,这是后来单独加的,为了少修改把所有的破拆们弄成一种克隆类型然后用这个枚举区分 /// public ForcibleType ForcibleType = ForcibleType.None; public override void OnEnable() { base.OnEnable(); MessageDispatcher.AddListener("CANCEL_CLONEBTN_SELECTED_COMMAND", CancelSelected); } public override void OnDisable() { base.OnDisable(); MessageDispatcher.RemoveListener("CANCEL_CLONEBTN_SELECTED_COMMAND", CancelSelected); } public override void OnDestroy() { base.OnDestroy(); MessageDispatcher.RemoveListener("CANCEL_CLONEBTN_SELECTED_COMMAND", CancelSelected); } public override void RespondFun(bool isOn) { var group = GetComponent().group; if (group) {//因为是排他的选择框,只执行主动改值的事件 var anyIsOn = group.AnyTogglesOn(); if ((anyIsOn && isOn) || (!anyIsOn)) { if (isOn) { InputManager.cloneObjType = cloneObjType; InputManager.ForcibleType = ForcibleType; MessageDispatcher.SendMessage("CloneSelected");//克隆按钮选中,取消技能触发 } else { InputManager.cloneObjType = CloneObjType.None; InputManager.ForcibleType = ForcibleType.None; if (cloneObjType == CloneObjType.WaterCurtainHose) {//取消水幕水带克隆按钮选中时,重置水幕水带克隆的起始点startPoint为Vector3.zero,以便下次多点连线克隆水幕水带是新的起始点 MessageDispatcher.SendMessage("INIT_WATERCURTAINHOSE_STARTPOINT"); } } } } //if (!isOn && DrawLineBase.CheckCloneObjTypeLine()) //{ // MessageDispatcher.SendMessage("CLEAR_LINE_DATA", null);//没有绑脚本注册消息,先注释掉 //} } private void CancelSelected(IMessage obj) { var arg = (CloneCmdArgs)obj.Data; if (GetComponent().isOn) { GetComponent().isOn = arg.selected; //MessageDispatcher.SendMessage("CLEAR_LINE_DATA", null);//没有绑脚本注册消息,先注释掉 } } }