미니맵 크기 최소화/최대화
This commit is contained in:
@@ -13,11 +13,20 @@ namespace XED.UI
|
||||
{
|
||||
Camera target;
|
||||
|
||||
Button Button_Maximize;
|
||||
Button Button_Minimize;
|
||||
|
||||
RectTransform rect;
|
||||
RectTransform HeaderArea;
|
||||
RectTransform MiniMapScreenMask;
|
||||
RectTransform HeightSelectBar;
|
||||
Slider ZoomSlider;
|
||||
|
||||
RectTransform MiniMapScreen;
|
||||
RectTransform Image_MiniMapIcon;
|
||||
RectTransform HeightSelectBar;
|
||||
RectTransform MiniMapHeightButtons;
|
||||
Slider ZoomSlider;
|
||||
|
||||
RectMask2D rectMask2D;
|
||||
|
||||
Vector2 worldMin;
|
||||
Vector2 worldMax;
|
||||
@@ -36,18 +45,33 @@ namespace XED.UI
|
||||
|
||||
public Dictionary<UI_MiniMapHeightButton, Texture2D> capturedImages = new();
|
||||
|
||||
private float lastClickTime = 0f;
|
||||
private float doubleClickThreshold = 0.3f;
|
||||
float lastClickTime = 0f;
|
||||
float doubleClickThreshold = 0.3f;
|
||||
|
||||
bool isMaximize;
|
||||
bool isMinimize;
|
||||
|
||||
public Vector2 sizeDelta;
|
||||
public Vector2 anchoredPos;
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
rect = GetComponent<RectTransform>();
|
||||
rectMask2D = GetComponent<RectMask2D>();
|
||||
rectMask2D.enabled = false;
|
||||
miniMapHeightButtonPrefab = Resources.Load<UI_MiniMapHeightButton>("Prefabs/UI/PRF_MiniMapHeightButton");
|
||||
|
||||
target = Camera.main;
|
||||
|
||||
Button_Maximize.onClick.AddListener(OnClickMaximize);
|
||||
Button_Minimize.onClick.AddListener(OnClickMinimize);
|
||||
ZoomSlider.onValueChanged.AddListener(OnSliderValueChanged);
|
||||
|
||||
worldMin = new Vector2(-mapRange, -mapRange);
|
||||
worldMax = new Vector2(mapRange, mapRange);
|
||||
|
||||
sizeDelta = rect.sizeDelta;
|
||||
anchoredPos = rect.anchoredPosition;
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
@@ -215,12 +239,75 @@ namespace XED.UI
|
||||
}
|
||||
}
|
||||
|
||||
public void OnSliderValueChanged(float value)
|
||||
void OnSliderValueChanged(float value)
|
||||
{
|
||||
float offset = Mathf.Lerp(0, mapRange, value);
|
||||
|
||||
MiniMapScreen.offsetMin = new Vector2(-offset, -offset);
|
||||
MiniMapScreen.offsetMax = new Vector2(offset, offset);
|
||||
}
|
||||
|
||||
void OnClickMaximize()
|
||||
{
|
||||
if (isMaximize)
|
||||
{
|
||||
SetOriginRect();
|
||||
isMaximize = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Button_Minimize.gameObject.SetActive(false);
|
||||
rect.offsetMin = Vector2.zero;
|
||||
rect.offsetMax = Vector2.zero;
|
||||
isMaximize = true;
|
||||
}
|
||||
}
|
||||
|
||||
void OnClickMinimize()
|
||||
{
|
||||
if (isMinimize)
|
||||
{
|
||||
SetOriginRect();
|
||||
isMinimize = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
rectMask2D.enabled = true;
|
||||
foreach (Transform headerChild in HeaderArea.transform)
|
||||
{
|
||||
GameObject headerChildObject = headerChild.gameObject;
|
||||
|
||||
if (headerChildObject != Button_Minimize.gameObject)
|
||||
{
|
||||
headerChildObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
MiniMapScreenMask.gameObject.SetActive(false);
|
||||
HeightSelectBar.gameObject.SetActive(false);
|
||||
ZoomSlider.gameObject.SetActive(false);
|
||||
|
||||
rect.offsetMin = new Vector2(rect.offsetMin.x + 520, rect.offsetMin.y + 564);
|
||||
|
||||
isMinimize = true;
|
||||
}
|
||||
}
|
||||
|
||||
void SetOriginRect()
|
||||
{
|
||||
foreach (Transform headerChild in HeaderArea.transform)
|
||||
{
|
||||
GameObject headerChildObject = headerChild.gameObject;
|
||||
headerChildObject.SetActive(true);
|
||||
}
|
||||
|
||||
MiniMapScreenMask.gameObject.SetActive(true);
|
||||
HeightSelectBar.gameObject.SetActive(true);
|
||||
ZoomSlider.gameObject.SetActive(true);
|
||||
|
||||
rect.sizeDelta = sizeDelta;
|
||||
rect.anchoredPosition = anchoredPos;
|
||||
rectMask2D.enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user