using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using System; using AX.InputSystem; [RequireComponent(typeof(BaseGameObjInfo))] [RequireComponent(typeof(CreateStaticObjID))] [RequireComponent(typeof(Toggle))] public abstract class BaseToggleClick : MonoBehaviour,IPointerClickHandler { public void OnPointerClick(PointerEventData eventData) { var interactable = GetComponent().interactable; if (interactable) { var isOn = GetComponent().isOn; var arg = new UIToggleArgs(); arg.isOn = isOn; arg.currentCursorPos = Input.mousePosition; RegisterUIInputEvent.RegisterUIInputHistory(gameObject, this.GetType().Name, "Click", arg); RespondFun(isOn); } } public void Click(CmdArgs arg) { if (GameSettings.othersSettings.isReplayMode) { if (!GameSettings.othersSettings.isReplayPause && !GameSettings.othersSettings.isReplayOver) { CursorManager.GetInstance.SetClick(arg); } } var isOn = ((UIToggleArgs)arg).isOn; GetComponent().isOn = isOn; RespondFun(isOn); } // Use this for initialization void Start () { } // Update is called once per frame void Update () { } public abstract void RespondFun(bool value); }