bugfix/HideUpgradesOnDeselect (#9)
Retire le UI du UnitTree quand on clique sur n'importe quoi d'autre Co-authored-by: Ader Alisma 01 <adeder22@hotmail.com> Reviewed-on: #9 Reviewed-by: EliaGingras1 <william-gin1@hotmail.com>
This commit is contained in:
parent
b05a3245c0
commit
a15a75a603
@ -30,6 +30,7 @@ RectTransform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3501783116545349986}
|
||||
- {fileID: 6716417799655040460}
|
||||
- {fileID: 7628964284593499177}
|
||||
- {fileID: 1691244495608687713}
|
||||
@ -94,7 +95,7 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4817988606444742094}
|
||||
m_RootOrder: 3
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
@ -127,6 +128,82 @@ MonoBehaviour:
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!1 &7208680640146097829
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3501783116545349986}
|
||||
- component: {fileID: 4692438377285158079}
|
||||
- component: {fileID: 5060206313964554553}
|
||||
m_Layer: 5
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &3501783116545349986
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7208680640146097829}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 46.65209, y: 30.223253, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4817988606444742094}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4692438377285158079
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7208680640146097829}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5060206313964554553
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7208680640146097829}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1001 &2008641878076503636
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -156,7 +233,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 907652127959947829, guid: 7a4156822defb3f4bb8a2ed6de7cacdb, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 2
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 907652127959947829, guid: 7a4156822defb3f4bb8a2ed6de7cacdb, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
@ -330,7 +407,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 907652127959947829, guid: 7a4156822defb3f4bb8a2ed6de7cacdb, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 907652127959947829, guid: 7a4156822defb3f4bb8a2ed6de7cacdb, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
@ -500,7 +577,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 907652127959947829, guid: 7a4156822defb3f4bb8a2ed6de7cacdb, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 1
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 907652127959947829, guid: 7a4156822defb3f4bb8a2ed6de7cacdb, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
|
||||
@ -4711,6 +4711,19 @@ 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:
|
||||
_canvas: {fileID: 1092900231}
|
||||
--- !u!1 &1761692192
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AllyUpgrade : MonoBehaviour, IPointerClickHandler
|
||||
{
|
||||
@ -28,27 +29,30 @@ public class AllyUpgrade : MonoBehaviour, IPointerClickHandler
|
||||
{
|
||||
_instance = Instantiate(_upgradeUI, Camera.main.WorldToScreenPoint(transform.position), Quaternion.identity, canvas.transform);
|
||||
AssignUpgrades(canvas);
|
||||
DeselectManager.Instance.SetAllyUpgrade(_instance);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Destroy(_instance);
|
||||
_instance = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AssignUpgrades(Canvas canvas)
|
||||
{
|
||||
// Assign upgrade Prefabs
|
||||
// Assign upgrade Prefabs
|
||||
for (int i = 0; i < _instance.transform.childCount - 1; i++)
|
||||
{
|
||||
if (_upgradeList.Count > i && _upgradeList[i] != null)
|
||||
{
|
||||
GameObject upgradeEnfant = _instance.transform.GetChild(i).gameObject;
|
||||
UpgradePlacementButton button = upgradeEnfant.GetComponent<UpgradePlacementButton>();
|
||||
button.Initialize(_upgradeList[i], gameObject, canvas);
|
||||
GameObject upgradeEnfant = _instance.transform.Find("Upgrade" + (i + 1)).gameObject;
|
||||
if (upgradeEnfant.TryGetComponent<UpgradePlacementButton>(out UpgradePlacementButton button))
|
||||
{
|
||||
button.Initialize(_upgradeList[i], gameObject, canvas);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -58,6 +62,7 @@ public class AllyUpgrade : MonoBehaviour, IPointerClickHandler
|
||||
if (_instance != null)
|
||||
{
|
||||
Destroy(_instance);
|
||||
_instance = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
48
Assets/Scripts/UnitTree/DeselectManager.cs
Normal file
48
Assets/Scripts/UnitTree/DeselectManager.cs
Normal file
@ -0,0 +1,48 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class DeselectManager : SingletonBehaviour<DeselectManager>
|
||||
{
|
||||
private GameObject _allyUpgrade;
|
||||
[SerializeField]
|
||||
private Canvas _canvas;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetMouseButton(0) && _allyUpgrade != null)
|
||||
{
|
||||
// Vérifie si click est sur un enfant d'AllyUpgrade
|
||||
PointerEventData pointerData = new PointerEventData(EventSystem.current)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
SetAllyUpgrade(null);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetAllyUpgrade(GameObject allyUpgradeInstance)
|
||||
{
|
||||
if (_allyUpgrade == null)
|
||||
{
|
||||
_allyUpgrade = allyUpgradeInstance;
|
||||
|
||||
}
|
||||
else if (_allyUpgrade != allyUpgradeInstance)
|
||||
{
|
||||
Destroy(_allyUpgrade);
|
||||
_allyUpgrade = allyUpgradeInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/UnitTree/DeselectManager.cs.meta
Normal file
11
Assets/Scripts/UnitTree/DeselectManager.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c63e60a445cf4549999d898b25ab0ea
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
x
Reference in New Issue
Block a user