38 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |