bugfix/HideUpgradesOnDeselect #9

Merged
Ader_Alisma merged 16 commits from bugfix/HideUpgradesOnDeselect into main 2025-09-07 22:48:30 +00:00
2 changed files with 20 additions and 14 deletions
Showing only changes of commit 9e20b0d463 - Show all commits

View File

@ -4675,6 +4675,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4c63e60a445cf4549999d898b25ab0ea, type: 3} m_Script: {fileID: 11500000, guid: 4c63e60a445cf4549999d898b25ab0ea, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_canvas: {fileID: 1092900231}
--- !u!1 &1761692192 --- !u!1 &1761692192
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -1,44 +1,49 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class DeselectManager : SingletonBehaviour<DeselectManager> public class DeselectManager : SingletonBehaviour<DeselectManager>
{ {
private GameObject _allyUpgrade; private GameObject _allyUpgrade;
[SerializeField]
private Canvas _canvas;
private void Update() private void Update()
{ {
if (Input.GetMouseButton(0) && _allyUpgrade != null) if (Input.GetMouseButton(0) && _allyUpgrade != null)
{ {
// Verifie var si click est sur un enfant d'AllyUpgrade // Vérifie si click est sur un enfant d'AllyUpgrade
PointerEventData pointerData = new PointerEventData(EventSystem.current)
GameObject selectedObject = UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject; {
if (selectedObject != null && selectedObject.transform.IsChildOf(_allyUpgrade.transform)) position = Input.mousePosition
};
List<RaycastResult> results = new List<RaycastResult>();
GraphicRaycaster raycaster = _canvas.GetComponent<GraphicRaycaster>();
raycaster.Raycast(pointerData, results);
foreach (RaycastResult result in results)
{
if (result.gameObject.transform.IsChildOf(_allyUpgrade.transform))
{ {
return; return;
} }
else }
{
Debug.Log("Called to deselect from Observer");
Destroy(_allyUpgrade); Destroy(_allyUpgrade);
_allyUpgrade = null; _allyUpgrade = null;
} }
} }
}
public void SetAllyUpgrade(GameObject allyUpgradeInstance) public void SetAllyUpgrade(GameObject allyUpgradeInstance)
{ {
if (_allyUpgrade == null) if (_allyUpgrade == null)
{ {
_allyUpgrade = allyUpgradeInstance; _allyUpgrade = allyUpgradeInstance;
} }
else if (_allyUpgrade != allyUpgradeInstance) else if (_allyUpgrade != allyUpgradeInstance)
{ {
Destroy(_allyUpgrade); Destroy(_allyUpgrade);
_allyUpgrade = allyUpgradeInstance; _allyUpgrade = allyUpgradeInstance;
} }
Debug.Log("AllyUpgrade set: " + _allyUpgrade?.name);
} }
} }