using System.Collections.Generic; using Continentis.MainGame.Character; using SLSFramework.General; using UnityEngine; namespace Continentis.MainGame.UI { public class HUDPage : UIPageBase { public Dictionary hudCollection; public void Initialize(List characters) { hudCollection ??= new Dictionary(); foreach (CharacterBase character in characters) { RectTransform canvasTransform = CombatUIManager.Instance.hudPage.GetComponent(); 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().anchoredPosition = containerPosition; } else { HUDContainer container = Instantiate(MainGameManager.Instance.basePrefabs.hudContainer, transform).GetComponent(); container.Initialize(character.characterView); container.GetComponent().anchoredPosition = containerPosition; hudCollection.Add(character, container); } } } } }