using System; using System.Collections.Generic; using Data; using Managers; using UnityEngine; namespace UI { public class StartPlayUI:FullScreenUI { public Transform iconList; 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; public MapViewUI mapViewUIPrefab; public List mapViewUIList = new List(); 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(); } } }