bugfix/HideUpgradesOnDeselect #9

Merged
Ader_Alisma merged 16 commits from bugfix/HideUpgradesOnDeselect into main 2025-09-07 22:48:30 +00:00
4 changed files with 57 additions and 37 deletions
Showing only changes of commit 3a4ec88cbc - Show all commits

View File

@ -4663,6 +4663,18 @@ MonoBehaviour:
m_EditorClassIdentifier:
_pauseButton: {fileID: 2019202048}
_speedButton: {fileID: 1709530845}
--- !u!114 &1760532844
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 829543639}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4c63e60a445cf4549999d898b25ab0ea, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1761692192
GameObject:
m_ObjectHideFlags: 0

View File

@ -29,9 +29,7 @@ public class AllyUpgrade : MonoBehaviour, IPointerClickHandler
{
_instance = Instantiate(_upgradeUI, Camera.main.WorldToScreenPoint(transform.position), Quaternion.identity, canvas.transform);
AssignUpgrades(canvas);
//EventSystem.current.SetSelectedGameObject(_instance);
//_instance.GetComponent<Selectable>().Select();
//_instance.AddComponent<DeselectedAction>();
DeselectManager.Instance.SetAllyUpgrade(_instance);
}
}
}
@ -54,8 +52,8 @@ public class AllyUpgrade : MonoBehaviour, IPointerClickHandler
if (upgradeEnfant.TryGetComponent<UpgradePlacementButton>(out UpgradePlacementButton button))
{
button.Initialize(_upgradeList[i], gameObject, canvas);
button.GetComponent<Selectable>().Select();
button.gameObject.AddComponent<DeselectedAction>().Init(_instance);
//button.GetComponent<Selectable>().Select();
//button.gameObject.AddComponent<DeselectedAction>().Init(_instance);
}
}
}
@ -70,14 +68,4 @@ public class AllyUpgrade : MonoBehaviour, IPointerClickHandler
_instance = null;
}
}
//public void OnDeselect(BaseEventData eventData)
//{
// if (_instance != null)
// {
// Debug.Log("Destroying upgrade UI");
// Destroy(_instance);
// _instance = null;
// }
//}
}

View File

@ -2,25 +2,46 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DeselectManager<T> : MonoBehaviour where T : SingletonBehaviour<T>
public class DeselectManager : SingletonBehaviour<DeselectManager>
{
public static T Instance
{
get;
private set;
}
protected virtual void Awake()
{
if (!Instance) Instance = this as T;
else Destroy(this);
}
private GameObject _allyUpgrade;
private void Update()
{
if (Input.GetMouseButton(0))
{
// Verif liste si click sur un enfant d'AllyUpgrade
// Verifie var si click est sur un enfant d'AllyUpgrade
GameObject selectedObject = UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject;
if (selectedObject != null && _allyUpgrade != null && selectedObject.transform.IsChildOf(_allyUpgrade.transform))
{
return;
}
else
{
Debug.Log("Called to deselect from Observer");
if (_allyUpgrade != null)
{
Destroy(_allyUpgrade);
_allyUpgrade = null;
}
}
}
}
public void SetAllyUpgrade(GameObject allyUpgradeInstance)
{
if (_allyUpgrade == null)
{
_allyUpgrade = allyUpgradeInstance;
}
else if (_allyUpgrade != allyUpgradeInstance)
{
Destroy(_allyUpgrade);
_allyUpgrade = allyUpgradeInstance;
}
Debug.Log("AllyUpgrade set: " + _allyUpgrade?.name);
}
}

View File

@ -13,14 +13,13 @@ public class DeselectedAction : MonoBehaviour, IDeselectHandler
public void OnDeselect(BaseEventData eventData)
{
GameObject selectedObject = EventSystem.current.currentSelectedGameObject;
Debug.Log("DeselectedAction called on: " + selectedObject?.name);
if (selectedObject != null && selectedObject.transform.IsChildOf(_allyUpgrade.transform))
{
//N'interrompt pas l'upgrade
return;
}
Debug.Log("Called to deselect");
//GameObject selectedObject = EventSystem.current.currentSelectedGameObject;
//Debug.Log("DeselectedAction called on: " + selectedObject?.name);
//if (selectedObject != null && selectedObject.transform.IsChildOf(_allyUpgrade.transform))
//{
// return;
//}
//Debug.Log("Called to deselect");
//Destroy(_allyUpgrade);
}
}