Files
Continentis/Assets/Scripts/MainGame/UI/HUDPage/HUDPage.cs
SoulliesOfficial 61a397dd4c MOD!
2025-10-23 00:49:44 -04:00

38 lines
1.6 KiB
C#

using System.Collections.Generic;
using Continentis.MainGame.Character;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.MainGame.UI
{
public class HUDPage : UIPageBase
{
public Dictionary<CharacterBase, HUDContainer> hudCollection;
public void Initialize(List<CharacterBase> characters)
{
hudCollection ??= new Dictionary<CharacterBase, HUDContainer>();
foreach (CharacterBase character in characters)
{
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);
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);
}
}
}
}
}