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);
}
}
}
}
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);
}
}
}
}
1 Reply
C++
private IEnumerator HoldCheck()
{
yield return new WaitForSeconds(timetoWaitForNewRightClick);
_isHolding = false;
_pressedObject = null;
}
private void OpenOverlay()
{
switch (gameObject.tag)
{
case "Card":
CardOverlayManager.Instance.OpenOverlay(gameObject);
_isOverlayOpen = true;
Debug.LogWarning("Öffne das KartenOverlay Und änder Zustand zu true!" + _isOverlayOpen);
break;
case "Deck":
_areaOverlayManager.OpenDeckOverlay(deckManager.GetContent());
_isAreaOverlayOpen = true;
Debug.Log("Öffne das DeckOverlay");
break;
case "Discard":
_areaOverlayManager.OpenDiscardOverlay(discardManager.GetContent());
_isAreaOverlayOpen = true;
Debug.Log("Öffne das Discard Overlay");
break;
case "Tile":
Debug.Log("Öffne das Tile Overlay");
break;
case "UnitIcon":
Debug.Log("Öffne das Tile Overlay");
break;
default:
Debug.Log("Kein bekanntes Overlay vorhanden");
break;
}
}
public bool IsOverlayOpen()
{
return _isOverlayOpen && _isAreaOverlayOpen;
}
}
C++
private IEnumerator HoldCheck()
{
yield return new WaitForSeconds(timetoWaitForNewRightClick);
_isHolding = false;
_pressedObject = null;
}
private void OpenOverlay()
{
switch (gameObject.tag)
{
case "Card":
CardOverlayManager.Instance.OpenOverlay(gameObject);
_isOverlayOpen = true;
Debug.LogWarning("Öffne das KartenOverlay Und änder Zustand zu true!" + _isOverlayOpen);
break;
case "Deck":
_areaOverlayManager.OpenDeckOverlay(deckManager.GetContent());
_isAreaOverlayOpen = true;
Debug.Log("Öffne das DeckOverlay");
break;
case "Discard":
_areaOverlayManager.OpenDiscardOverlay(discardManager.GetContent());
_isAreaOverlayOpen = true;
Debug.Log("Öffne das Discard Overlay");
break;
case "Tile":
Debug.Log("Öffne das Tile Overlay");
break;
case "UnitIcon":
Debug.Log("Öffne das Tile Overlay");
break;
default:
Debug.Log("Kein bekanntes Overlay vorhanden");
break;
}
}
public bool IsOverlayOpen()
{
return _isOverlayOpen && _isAreaOverlayOpen;
}
}