From 9e20b0d46307d2bd2753874d76e74e37715c45a2 Mon Sep 17 00:00:00 2001 From: Ader Alisma 01 Date: Sun, 29 Jun 2025 17:40:51 -0400 Subject: [PATCH] Deselect fonctionnel --- Assets/Scenes/Game.unity | 1 + Assets/Scripts/UnitTree/DeselectManager.cs | 33 +++++++++++++--------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 99ef001..76c30e0 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -4675,6 +4675,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4c63e60a445cf4549999d898b25ab0ea, type: 3} m_Name: m_EditorClassIdentifier: + _canvas: {fileID: 1092900231} --- !u!1 &1761692192 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/UnitTree/DeselectManager.cs b/Assets/Scripts/UnitTree/DeselectManager.cs index ed780f0..c4a6063 100644 --- a/Assets/Scripts/UnitTree/DeselectManager.cs +++ b/Assets/Scripts/UnitTree/DeselectManager.cs @@ -1,28 +1,35 @@ -using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; public class DeselectManager : SingletonBehaviour { private GameObject _allyUpgrade; + [SerializeField] + private Canvas _canvas; private void Update() { if (Input.GetMouseButton(0) && _allyUpgrade != null) { - // Verifie var si click est sur un enfant d'AllyUpgrade - - GameObject selectedObject = UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject; - if (selectedObject != null && selectedObject.transform.IsChildOf(_allyUpgrade.transform)) + // Vérifie si click est sur un enfant d'AllyUpgrade + PointerEventData pointerData = new PointerEventData(EventSystem.current) { - return; - } - else + position = Input.mousePosition + }; + List results = new List(); + GraphicRaycaster raycaster = _canvas.GetComponent(); + raycaster.Raycast(pointerData, results); + foreach (RaycastResult result in results) { - Debug.Log("Called to deselect from Observer"); - Destroy(_allyUpgrade); - _allyUpgrade = null; + if (result.gameObject.transform.IsChildOf(_allyUpgrade.transform)) + { + return; + } } + Destroy(_allyUpgrade); + _allyUpgrade = null; } } @@ -31,14 +38,12 @@ public class DeselectManager : SingletonBehaviour if (_allyUpgrade == null) { _allyUpgrade = allyUpgradeInstance; + } else if (_allyUpgrade != allyUpgradeInstance) { Destroy(_allyUpgrade); _allyUpgrade = allyUpgradeInstance; } - Debug.Log("AllyUpgrade set: " + _allyUpgrade?.name); } - - }