using System.Collections.Generic; using Data; using Managers; using UnityEngine; namespace UI { public class StartPlayUI : FullScreenUI { public Transform iconList; public MapViewUI mapViewUIPrefab; public List mapViewUIList = new(); private int _currentIndex; public int CurrentDimensionIndex { get => _currentIndex; set { _currentIndex = value; if (_currentIndex < 0) _currentIndex += mapViewUIList.Count; else if (_currentIndex >= mapViewUIList.Count) _currentIndex %= mapViewUIList.Count; } } public DimensionDef CurrentDimension => mapViewUIList[CurrentDimensionIndex].DimensionDefine; private void Start() { var dimensionDefs = DefineManager.Instance.QueryDefinesByType(); if (dimensionDefs == null) return; foreach (var d in dimensionDefs) { if (!d.canSelect) continue; var newObj = Instantiate(mapViewUIPrefab, iconList); mapViewUIList.Add(newObj); newObj.Init(d); newObj.gameObject.SetActive(false); newObj.transform.localPosition = Vector3.zero; } UpdateUI(); } public void UpdateUI() { if (mapViewUIList == null) return; for (var i = 0; i < mapViewUIList.Count; i++) mapViewUIList[i].gameObject.SetActive(i == CurrentDimensionIndex); } public void OnStartGame() { Program.Instance.StartPlayGame(CurrentDimension); } public void OnLeft() { CurrentDimensionIndex -= 1; UpdateUI(); } public void OnRight() { CurrentDimensionIndex += 1; UpdateUI(); } } }