| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 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<Selectable>();
- 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;
- btnConfirm.transform.position = RectTransformUtils.GetPositionByPivot(_targetSelectable.transform as RectTransform, Vector2.one * 0.5f);
- btnConfirm.gameObject.SetActive(true);
- GetComponent<Canvas>().sortingOrder = _targetSelectable.GetComponentInParent<Canvas>().sortingOrder + 1;
- }
- }
- }
- 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<Button>();
- btn.onClick.Invoke();
- }
- }
- catch (System.Exception e)
- {
- Debug.LogError(e.Message);
- Debug.LogError(e.StackTrace);
- }
- Hide();
- }
- public void SetSelectable(Selectable selectable) {
- if (!selectable) return;
- if (selectable == _targetSelectable) return;
- if (selectable == _selfSelectable) return;
- _targetSelectable = selectable;
- Show();
- }
- }
|