using System; using Continentis.MainGame.Character; using SLSUtilities.General; using UnityEngine; using Object = UnityEngine.Object; namespace Continentis.MainGame.UI { [CreateAssetMenu(menuName = "Continentis/MainGame/HUD/HUDData", fileName = "HUDData")] public class HUDData : ScriptableObject { [KeyWidth(0.25f)] public SerializableDictionary hudInfos; } [Serializable] public class HUDInfo { public GameObject hudPrefab; public string attachedPartName = "Center"; public Vector2 positionOffset = Vector2.zero; public HUDElementBase GenerateHUD(CombatCharacterViewBase characterView, HUDContainer hudContainer) { var attachedPart = characterView.hudPivot.Find(attachedPartName) ?? characterView.hudPivot.GetChild(0); var hudPageTransform = CombatUIManager.Instance.hudPage.rectTransform; var element = Object.Instantiate(hudPrefab, hudPageTransform).GetComponent(); element.SetPosition(attachedPart.position, positionOffset); element.container = hudContainer; element.hudTransform.SetParent(hudContainer.transform); return element; } } }