using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class SettingGroup : MonoBehaviour { public List settings; [SerializeField] private TextMeshProUGUI _titleLabel; [SerializeField] private RectTransform _contentVLG; [SerializeField] private float _titleHeight; public void Configure(SettingsGroupDTO data) { _titleLabel.text = data.Name; settings = new(); foreach (var setting in data.Settings) settings.Add( GenerateSetting(setting)); LayoutRebuilder.ForceRebuildLayoutImmediate(_contentVLG); float _groupHeight = _contentVLG.sizeDelta.y - _contentVLG.anchoredPosition.y; var rect = GetComponent(); rect.sizeDelta = new Vector2(rect.sizeDelta.x, _groupHeight); } public BaseSettingView GenerateSetting(SettingDTO setting) { var settingPrefab = SettingViewsProvider.GetViewBySetting(setting); var view = Instantiate(settingPrefab, _contentVLG); view.Initialize(setting); return view; } }