using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using JC.Unity.UI; using JC.Unity; public class MouseConfirm : MonoBehaviour { [SerializeField] Button btnConfirm; Selectable _targetSelectable; Selectable _selfSelectable; bool _prepared = false; void Awake() { btnConfirm.gameObject.SetActive(false); } void Start() { _selfSelectable = btnConfirm.GetComponent(); btnConfirm.onClick.AddListener(OnClikc_Confirm); } void Update() { if (!SB_EventSystem.ins.simulateMouseIsAwaked) { Hide(); return; } if (!SB_EventSystem.ins.simulateMouse.GetCurrentSelectable()) { Hide(); return; } if (_targetSelectable) { if (!_prepared) { _prepared = true; RectTransform rtf = _targetSelectable.transform as RectTransform; Vector3 size = rtf.rect.size; if (size.x == 0 || size.y == 0) { Hide(); return; } Vector3 maxSize = RectTransformUtils.CanvasV3ToScreenV3(Vector3.one * 120, transform as RectTransform); size = RectTransformUtils.CanvasV3ToScreenV3(size, rtf); if (size.x > maxSize.x || size.y > maxSize.y) { Hide(); return; } btnConfirm.transform.position = RectTransformUtils.GetPositionByPivot(_targetSelectable.transform as RectTransform, Vector2.one * 0.5f); btnConfirm.gameObject.SetActive(true); GetComponent().sortingOrder = _targetSelectable.GetComponentInParent().sortingOrder + 1; } } else { Hide(); } } void Show() { _prepared = false; if (!gameObject.activeSelf) gameObject.SetActive(true); } void Hide() { _targetSelectable = null; btnConfirm.gameObject.SetActive(false); if (gameObject.activeSelf) gameObject.SetActive(false); } void OnClikc_Confirm() { try { if (_targetSelectable && _targetSelectable.interactable) { Button btn = _targetSelectable.GetComponent