Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/AchievementsGUI.cs
2026-02-21 16:45:37 +08:00

70 lines
1.9 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AchievementsGUI : MonoBehaviour
{
public AchievementWidget widgetPrefab;
public Transform widgetsParent;
public ScrollRect scrollWindow;
public float startWidgetsOffset;
public float scrollWidgetsOffset = 100f;
private Vector2 scrollParentStartPos = Vector2.zero;
public bool sortList;
[HideInInspector]
public AchievementManager achievemntManager;
[HideInInspector]
public List<AchievementWidget> widgetsList = new List<AchievementWidget>();
private void Start()
{
Initialize();
}
private void OnEnable()
{
Refresh();
}
public void Initialize()
{
achievemntManager = AchievementManager.Instance;
scrollParentStartPos = scrollWindow.content.localPosition;
scrollWindow.content.sizeDelta = new Vector2(scrollWindow.content.sizeDelta.x, scrollWidgetsOffset * (float)achievemntManager.achievements.Count + scrollWidgetsOffset * 0f);
scrollWindow.content.localPosition = scrollParentStartPos;
Canvas.ForceUpdateCanvases();
scrollWindow.verticalScrollbar.value = 1f;
Canvas.ForceUpdateCanvases();
for (int i = 0; i < achievemntManager.achievements.Count; i++)
{
AchievementWidget achievementWidget = Object.Instantiate(widgetPrefab);
achievementWidget.transform.SetParent(widgetsParent);
achievementWidget.GetComponent<RectTransform>().localPosition = Vector3.zero + new Vector3(0f, (float)i * (0f - scrollWidgetsOffset) + startWidgetsOffset, 0f);
achievementWidget.GetComponent<RectTransform>().localScale = Vector3.one;
achievementWidget.SetSource(achievemntManager.achievements[i]);
widgetsList.Add(achievementWidget);
}
Refresh();
scrollWindow.verticalNormalizedPosition = 1f;
}
public void Refresh()
{
if (!(achievemntManager == null))
{
for (int i = 0; i < widgetsList.Count; i++)
{
widgetsList[i].RefreshWidget();
}
}
}
}