using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
public class ServersSmallTipWin : UIBase
|
{
|
[SerializeField] RectTransform content;
|
[SerializeField] RectTransform arrow;
|
[SerializeField] ScrollerController serversScroller;
|
|
public static List<int> serverIDList;
|
protected override void OnPreOpen()
|
{
|
serversScroller.OnRefreshCell += OnRefreshCell;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
serversScroller.OnRefreshCell -= OnRefreshCell;
|
}
|
|
|
protected override void NextFrameAfterOpen()
|
{
|
var worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
|
|
|
Vector2 screenAdjustedPos = CameraManager.uiCamera.WorldToScreenPoint(worldPos);
|
|
var beforePos = screenAdjustedPos;
|
var beforeAdjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(beforePos);
|
|
var rectWidth = content.rect.width * Screen.width / canvasScaler.referenceResolution.x;
|
screenAdjustedPos.x = Mathf.Clamp(screenAdjustedPos.x, rectWidth * 0.5f, Screen.width - rectWidth * 0.5f);
|
screenAdjustedPos.y -= 40;
|
var adjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(screenAdjustedPos);
|
adjustedPos.z = 0;
|
content.position = adjustedPos;
|
|
arrow.position = new Vector3(beforeAdjustedPos.x, arrow.position.y, 0);
|
}
|
|
|
public void Display()
|
{
|
serversScroller.Refresh();
|
for (int i = 0; i < serverIDList.Count; i++)
|
{
|
if (i % 4 == 0)
|
{
|
serversScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
}
|
serversScroller.Restart();
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetComponent<ServersSmallTipCell>();
|
_cell.Display(cell.index);
|
}
|
|
|
|
}
|