Files
Continentis/Assets/Scripts/MainGame/UI/HUDPage/HUDPage.cs

38 lines
1.6 KiB
C#
Raw Normal View History

2025-10-03 00:02:43 -04:00
using System.Collections.Generic;
using Continentis.MainGame.Character;
2025-10-23 00:49:44 -04:00
using SLSFramework.General;
2025-10-03 00:02:43 -04:00
using UnityEngine;
namespace Continentis.MainGame.UI
{
public class HUDPage : UIPageBase
{
public Dictionary<CharacterBase, HUDContainer> hudCollection;
2025-10-23 00:49:44 -04:00
public void Initialize(List<CharacterBase> characters)
2025-10-03 00:02:43 -04:00
{
2025-10-23 00:49:44 -04:00
hudCollection ??= new Dictionary<CharacterBase, HUDContainer>();
foreach (CharacterBase character in characters)
2025-10-03 00:02:43 -04:00
{
RectTransform canvasTransform = CombatUIManager.Instance.hudPage.GetComponent<RectTransform>();
Camera worldCamera = CombatUIManager.Instance.combatCamera;
Camera uiCamera = CombatUIManager.Instance.uiCamera;
Vector3 characterPosition = character.characterView.transform.position;
Vector2 containerPosition = SpaceConverter.WorldPointToUILocalPoint(canvasTransform, characterPosition, worldCamera, uiCamera);
2025-10-23 00:49:44 -04:00
if (hudCollection.TryGetValue(character, out var currentContainer))
{
currentContainer.GetComponent<RectTransform>().anchoredPosition = containerPosition;
}
else
{
HUDContainer container = Instantiate(MainGameManager.Instance.basePrefabs.hudContainer, transform).GetComponent<HUDContainer>();
container.Initialize(character.characterView);
container.GetComponent<RectTransform>().anchoredPosition = containerPosition;
hudCollection.Add(character, container);
}
}
2025-10-03 00:02:43 -04:00
}
}
}