C#C
C#10mo ago
RedFox3D

Private bool gets changed

C++

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Serialization;

public class OverlayManager : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
    private GameObject _pressedObject;
    private bool _isHolding;
    public float timetoWaitForNewRightClick = 1f;

    public DeckManager deckManager;
    public DiscardManager discardManager;
    
    private bool _isAreaOverlayOpen = false;
    private bool _isOverlayOpen = false;

    public void OnPointerDown(PointerEventData eventData)
    {
        if (eventData.button == PointerEventData.InputButton.Right)
        {
            _pressedObject = gameObject;
            _isHolding = true;
            
            if (!_isOverlayOpen)
            {
                StartCoroutine(HoldCheck());
            }
        }
    }
    
    public void OnPointerUp(PointerEventData eventData)
    {
        if (eventData.button == PointerEventData.InputButton.Right)
        {
            
            Debug.LogWarning("Rechtsklick losgelassen"+_isOverlayOpen);
        
            if (_isOverlayOpen)
            {
                Debug.LogWarning("Schließe Overlay! Und änder Zustand zu false!");
                CardOverlayManager.Instance.CloseOverlay();
                _isOverlayOpen = false;
                return;
            }

            if (_isAreaOverlayOpen && !gameObject.CompareTag("Card"))
            {
                _areaOverlayManager.CloseDeckOverlay();
                _isAreaOverlayOpen = false;
                return;
            }
            
            if (_isHolding)
            {
                _isHolding = false;
                if (_pressedObject == gameObject)
                {
                    OpenOverlay();
                    
                    Debug.LogWarning(_isOverlayOpen);
                }
            }
        }
    }
Was this page helpful?